Diff of the two buildlogs: -- --- b1/build.log 2025-09-09 18:18:42.298127516 +0000 +++ b2/build.log 2025-09-09 18:38:49.395809286 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Oct 12 12:33:09 -12 2026 -I: pbuilder-time-stamp: 1791851589 +I: Current time: Wed Sep 10 08:18:46 +14 2025 +I: pbuilder-time-stamp: 1757441926 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/forky-reproducible-base.tgz] I: copying local configuration @@ -101,53 +101,85 @@ dpkg-source: info: applying pykakasi/0078-Revert-Fix-a-regression-that-caused-incorrect-Englis.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/3772923/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3362688/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 Sep 9 18:18 /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/3362688/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3362688/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]="3" [2]="3" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.3.3(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='forky' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=forky + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='2c8761f8b3ef4382a5f2e9e4cb058147' - 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='3772923' - PS1='# ' - PS2='> ' + INVOCATION_ID=d970cbd301f54e96bde0ac1feea80e12 + 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=3362688 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.kzG0P04r/pbuilderrc_zi2m --distribution forky --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.kzG0P04r/b1 --logfile b1/build.log calibre_8.10.0+ds-3.dsc' - SUDO_GID='109' - SUDO_HOME='/var/lib/jenkins' - 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.kzG0P04r/pbuilderrc_Swho --distribution forky --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.kzG0P04r/b2 --logfile b2/build.log calibre_8.10.0+ds-3.dsc' + SUDO_GID=109 + SUDO_HOME=/var/lib/jenkins + 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 codethink03-arm64 6.12.43+deb13-cloud-arm64 #1 SMP Debian 6.12.43-1 (2025-08-27) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.12.43+deb13-cloud-arm64 #1 SMP Debian 6.12.43-1 (2025-08-27) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/3772923/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/3362688/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -955,7 +987,7 @@ Get: 599 http://deb.debian.org/debian forky/main arm64 qt6-wayland arm64 6.8.2-4 [170 kB] Get: 600 http://deb.debian.org/debian forky/main arm64 webp arm64 1.5.0-0.1 [196 kB] Get: 601 http://deb.debian.org/debian forky/main arm64 xdg-utils all 1.2.1-2 [75.8 kB] -Fetched 409 MB in 3s (131 MB/s) +Fetched 409 MB in 27s (14.9 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1: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 ... 20012 files and directories currently installed.) @@ -2874,8 +2906,8 @@ Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' -Local time is now: Tue Oct 13 00:34:54 UTC 2026. -Universal Time is now: Tue Oct 13 00:34:54 UTC 2026. +Local time is now: Tue Sep 9 18:23:44 UTC 2025. +Universal Time is now: Tue Sep 9 18:23:44 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libxcb-present0:arm64 (1.17.0-2+b1) ... @@ -3400,7 +3432,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/calibre-8.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_8.10.0+ds-3_source.changes +I: user script /srv/workspace/pbuilder/3362688/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for forky +I: user script /srv/workspace/pbuilder/3362688/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/calibre-8.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_8.10.0+ds-3_source.changes dpkg-buildpackage: info: source package calibre dpkg-buildpackage: info: source version 8.10.0+ds-3 dpkg-buildpackage: info: source distribution unstable @@ -3474,29 +3510,26 @@ gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.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.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx/lzxc.c -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx/compressor.c -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx/lzxd.c -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx/lzxmodule.c -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx/lzc.c -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx/lzxmodule.c -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx/compressor.c -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/lzx/lzxd.c -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/lzx/lzxd.o g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -I/usr/include/libpng16 -I/usr/include/freetype2 -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/fonts/freetype.cpp -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/freetype/freetype.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-8.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.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/msdes -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/msdes/msdesmodule.c -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/msdes/msdesmodule.o - gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.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.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/msdes -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/msdes/des.c -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/msdes/des.o +gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.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.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/msdes -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/msdes/msdesmodule.c -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/msdes/msdesmodule.o + gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.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.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/ebooks/compression/palmdoc.c -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/cPalmdoc/palmdoc.o gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.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.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/ebooks/djvu/bzzdecoder.c -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/doc.cpp -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/fonts.cpp -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/podofo/fonts.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/impose.cpp -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/output.cpp -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/podofo/output.o @@ -3505,16 +3538,19 @@ g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/images.cpp -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/impose.cpp -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/outline.cpp -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/utils.cpp -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/podofo.cpp -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/podofo/podofo.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-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/podofo.cpp -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/podofo/podofo.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/fonts.cpp -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/podofo/fonts.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-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/outline.cpp -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/utils.cpp -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/doc.cpp -o /build/reproducible-path/calibre-8.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-8.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.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/podofo/outlines.cpp -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/podofo/outlines.o @@ -3731,8 +3767,8 @@ -- Performing Test HAVE_STDATOMIC -- Performing Test HAVE_STDATOMIC - Success -- Found WrapAtomic: TRUE --- Configuring done (2.3s) --- Generating done (0.0s) +-- Configuring done (4.4s) +-- Generating done (0.1s) -- Build files have been written to: /build/reproducible-path/calibre-8.10.0+ds/build/headless make[2]: Entering directory '/build/reproducible-path/calibre-8.10.0+ds/build/headless' /usr/bin/cmake -S/build/reproducible-path/calibre-8.10.0+ds/src/calibre/headless -B/build/reproducible-path/calibre-8.10.0+ds/build/headless --check-build-system CMakeFiles/Makefile.cmake 0 @@ -3780,14 +3816,14 @@ make[4]: Leaving directory '/build/reproducible-path/calibre-8.10.0+ds/build/headless' make -f CMakeFiles/headless.dir/build.make CMakeFiles/headless.dir/build make[4]: Entering directory '/build/reproducible-path/calibre-8.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-8.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.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-8.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-8.10.0+ds/build/headless/headless_autogen/mocs_compilation.cpp -[ 50%] Building CXX object CMakeFiles/headless.dir/main.cpp.o +[ 33%] 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-8.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.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-8.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-8.10.0+ds/src/calibre/headless/headless_integration.cpp +[ 50%] Building CXX object CMakeFiles/headless.dir/headless_autogen/mocs_compilation.cpp.o +[ 66%] Building CXX object CMakeFiles/headless.dir/main.cpp.o /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -Dheadless_EXPORTS -I/build/reproducible-path/calibre-8.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.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-8.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-8.10.0+ds/src/calibre/headless/main.cpp -[ 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-8.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.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-8.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-8.10.0+ds/build/headless/headless_autogen/mocs_compilation.cpp +[ 83%] 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-8.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.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-8.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-8.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-8.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.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-8.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-8.10.0+ds/src/calibre/headless/headless_integration.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-8.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,--dependency-file=CMakeFiles/headless.dir/link.d -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.8.2 /usr/lib/aarch64-linux-gnu/libGLX.so /usr/lib/aarch64-linux-gnu/libOpenGL.so /usr/lib/aarch64-linux-gnu/libQt6Core.so.6.8.2 /usr/lib/aarch64-linux-gnu/libxkbcommon.so @@ -3796,21 +3832,21 @@ make[3]: Leaving directory '/build/reproducible-path/calibre-8.10.0+ds/build/headless' /usr/bin/cmake -E cmake_progress_start /build/reproducible-path/calibre-8.10.0+ds/build/headless/CMakeFiles 0 make[2]: Leaving directory '/build/reproducible-path/calibre-8.10.0+ds/build/headless' -* build took 101.4 seconds +* build took 451.5 seconds python3.13 setup.py liberation_fonts --system-liberation_fonts --path-to-liberation_fonts=/usr/share/fonts/truetype/liberation * * Running liberation_fonts * -* liberation_fonts took 0.0 seconds +* liberation_fonts took 0.1 seconds python3.13 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-8.10.0+ds/src/calibre/gui2/filename_pattern.ui Compiling form /build/reproducible-path/calibre-8.10.0+ds/src/calibre/gui2/catalog/catalog_bibtex.ui Compiling form /build/reproducible-path/calibre-8.10.0+ds/src/calibre/gui2/catalog/catalog_epub_mobi.ui @@ -3909,7 +3945,7 @@ Compiled 95 forms Creating icon theme resource file Creating images.qrc -* gui took 1.3 seconds +* gui took 4.4 seconds python3.13 setup.py kakasi * @@ -3917,10 +3953,10 @@ * Generating Kanwadict -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 Generating Itaijidict Generating kanadict -* kakasi took 0.6 seconds +* kakasi took 2.6 seconds make[1]: Leaving directory '/build/reproducible-path/calibre-8.10.0+ds' debian/rules override_dh_auto_test make[1]: Entering directory '/build/reproducible-path/calibre-8.10.0+ds' @@ -3943,16 +3979,16 @@ 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_listener_ipc (calibre.gui2.listener.find_tests..TestIPC.test_listener_ipc) ... ok [1.0 s] -test_safe_atexit (calibre.utils.safe_atexit.find_tests..TestSafeAtexit.test_safe_atexit) ... ok [0.8 s] +test_listener_ipc (calibre.gui2.listener.find_tests..TestIPC.test_listener_ipc) ... ok [2.0 s] +test_safe_atexit (calibre.utils.safe_atexit.find_tests..TestSafeAtexit.test_safe_atexit) ... ok [1.3 s] test_copying_of_trees (calibre.utils.copy_files_test.TestCopyFiles.test_copying_of_trees) ... ok [0.0 s] test_pread_all (calibre.utils.copy_files_test.TestCopyFiles.test_pread_all) ... 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_live_cache (calibre.live.find_tests..LiveTest.test_live_cache) ... ok [0.1 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.0 s] -test_hyphenate_html (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_hyphenate_html) ... ok [0.2 s] -test_locale_to_hyphen_dictionary (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_locale_to_hyphen_dictionary) ... ok [0.1 s] +test_add_soft_hyphens (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_add_soft_hyphens) ... ok [1.2 s] +test_hyphenate_html (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_hyphenate_html) ... ok [0.3 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] @@ -3961,11 +3997,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.5 s] test_exclusive_file_other_process_kill (calibre.utils.test_lock.IPCLockTest.test_exclusive_file_other_process_kill) ... ok [0.2 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 [2.0 s] -test_tdir_in_cache_dir (calibre.utils.test_lock.IPCLockTest.test_tdir_in_cache_dir) ... ok [0.4 s] +test_single_instance (calibre.utils.test_lock.IPCLockTest.test_single_instance) ... ok [3.6 s] +test_tdir_in_cache_dir (calibre.utils.test_lock.IPCLockTest.test_tdir_in_cache_dir) ... ok [0.6 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] @@ -3987,7 +4023,7 @@ test_single (calibre.ebooks.metadata.test_author_sort.TestAuthorToAuthorSort.test_single) ... ok [0.0 s] test_surname_prefix (calibre.ebooks.metadata.test_author_sort.TestAuthorToAuthorSort.test_surname_prefix) ... ok [0.0 s] test_depth_first (calibre.ebooks.html.input.find_tests..TestHTMLInput.test_depth_first) ... ok [0.0 s] -test_dictionaries (calibre.spell.dictionary.find_tests..TestDictionaries.test_dictionaries) ... ok [0.4 s] +test_dictionaries (calibre.spell.dictionary.find_tests..TestDictionaries.test_dictionaries) ... ok [1.4 s] test_html_entity_replacement (calibre.ebooks.html_entities.find_tests..TestHTMLEntityReplacement.test_html_entity_replacement) ... ok [0.0 s] 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] @@ -4017,13 +4053,13 @@ 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.0 s] -test_remove_accents (calibre.utils.icu_test.TestICU.test_remove_accents) ... 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_split_into_sentences (calibre.utils.icu_test.TestICU.test_split_into_sentences) ... ok [0.0 s] -test_mem_leaks (calibre.utils.matcher.test..Test.test_mem_leaks) ... ok [0.2 s] +test_mem_leaks (calibre.utils.matcher.test..Test.test_mem_leaks) ... ok [0.4 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] @@ -4082,7 +4118,7 @@ test_parse_style_attr (tinycss.tests.css21.TestCSS21.test_parse_style_attr) ... ok [0.0 s] test_color_parsing (tinycss.tests.color3.TestColor3.test_color_parsing) ... ok [0.0 s] test_hsl (tinycss.tests.color3.TestColor3.test_hsl) ... ok [0.0 s] -test_against_opf2 (calibre.ebooks.metadata.opf3_test.TestOPF3.test_against_opf2) ... ok [0.0 s] +test_against_opf2 (calibre.ebooks.metadata.opf3_test.TestOPF3.test_against_opf2) ... ok [0.1 s] test_authors (calibre.ebooks.metadata.opf3_test.TestOPF3.test_authors) ... ok [0.0 s] test_book_producer (calibre.ebooks.metadata.opf3_test.TestOPF3.test_book_producer) ... ok [0.0 s] test_comments (calibre.ebooks.metadata.opf3_test.TestOPF3.test_comments) ... ok [0.0 s] @@ -4102,7 +4138,7 @@ 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_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.1 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_mark_sentences (calibre.ebooks.oeb.polish.tests.structure.Structure.test_mark_sentences) ... ok [0.0 s] test_toc_detection (calibre.ebooks.oeb.polish.tests.structure.Structure.test_toc_detection) ... ok [0.0 s] @@ -4113,7 +4149,7 @@ test_polish_parser (calibre.ebooks.oeb.polish.tests.parsing.ParsingTests.test_polish_parser) Test parsing with the HTML5 parser used for polishing ... ok [0.0 s] test_kepubify (calibre.ebooks.oeb.polish.tests.kepubify.KepubifyTests.test_kepubify) ... Conversion options changed from defaults: - cover: '/tmp/calibre-l6z22ukc/1du3e3_qbpt/lt.png' + cover: '/tmp/calibre-znrpgpjb/9i3398npbpt/lt.png' language: 'en' verbose: 2 level1_toc: '//h:h2' @@ -4134,7 +4170,7 @@ "'i')) or @class = 'chapter']", 'chapter_mark': 'pagebreak', 'comments': None, - 'cover': '/tmp/calibre-l6z22ukc/1du3e3_qbpt/lt.png', + 'cover': '/tmp/calibre-znrpgpjb/9i3398npbpt/lt.png', 'debug_pipeline': None, 'dehyphenate': True, 'delete_blank_paragraphs': True, @@ -4160,7 +4196,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, @@ -4185,7 +4221,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, @@ -4227,19 +4263,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-l6z22ukc/1du3e3_qbpt/index.html +on /tmp/calibre-znrpgpjb/9i3398npbpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-l6z22ukc/1du3e3_qbpt/index.html' + HTMLFile:0:a:'/tmp/calibre-znrpgpjb/9i3398npbpt/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-l6z22ukc/1du3e3_qbpt/marked.png with href: marked.png -Added /tmp/calibre-l6z22ukc/1du3e3_qbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-l6z22ukc/1du3e3_qbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-l6z22ukc/1du3e3_qbpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-znrpgpjb/9i3398npbpt/marked.png with href: marked.png +Added /tmp/calibre-znrpgpjb/9i3398npbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-znrpgpjb/9i3398npbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-znrpgpjb/9i3398npbpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4267,12 +4303,12 @@ EPUB output written to /build/reproducible-path/calibre-8.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-True-2.epub Output saved to /build/reproducible-path/calibre-8.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-True-2.epub Conversion options changed from defaults: + cover: '/tmp/calibre-znrpgpjb/9nrq710cbpt/lt.png' + level1_toc: '//h:h2' + authors: 'Kovid Goyal' language: 'en' verbose: 2 - level1_toc: '//h:h2' epub_version: '3' - cover: '/tmp/calibre-l6z22ukc/c3xgrjb0bpt/lt.png' - authors: 'Kovid Goyal' Resolved conversion options calibre version: 8.10.0 {'add_alt_text_to_img': False, @@ -4289,7 +4325,7 @@ "'i')) or @class = 'chapter']", 'chapter_mark': 'pagebreak', 'comments': None, - 'cover': '/tmp/calibre-l6z22ukc/c3xgrjb0bpt/lt.png', + 'cover': '/tmp/calibre-znrpgpjb/9nrq710cbpt/lt.png', 'debug_pipeline': None, 'dehyphenate': True, 'delete_blank_paragraphs': True, @@ -4315,7 +4351,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, @@ -4340,7 +4376,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, @@ -4382,19 +4418,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-l6z22ukc/c3xgrjb0bpt/index.html +on /tmp/calibre-znrpgpjb/9nrq710cbpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-l6z22ukc/c3xgrjb0bpt/index.html' + HTMLFile:0:a:'/tmp/calibre-znrpgpjb/9nrq710cbpt/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-l6z22ukc/c3xgrjb0bpt/marked.png with href: marked.png -Added /tmp/calibre-l6z22ukc/c3xgrjb0bpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-l6z22ukc/c3xgrjb0bpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-l6z22ukc/c3xgrjb0bpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-znrpgpjb/9nrq710cbpt/marked.png with href: marked.png +Added /tmp/calibre-znrpgpjb/9nrq710cbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-znrpgpjb/9nrq710cbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-znrpgpjb/9nrq710cbpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4423,11 +4459,11 @@ EPUB output written to /build/reproducible-path/calibre-8.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-True-3.epub Output saved to /build/reproducible-path/calibre-8.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-True-3.epub Conversion options changed from defaults: - no_default_epub_cover: True language: 'en' verbose: 2 - level1_toc: '//h:h2' + no_default_epub_cover: True authors: 'Kovid Goyal' + level1_toc: '//h:h2' Resolved conversion options calibre version: 8.10.0 {'add_alt_text_to_img': False, @@ -4470,7 +4506,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, @@ -4495,7 +4531,7 @@ 'no_default_epub_cover': True, '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, @@ -4537,19 +4573,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-l6z22ukc/_t19105bbpt/index.html +on /tmp/calibre-znrpgpjb/3py7twwkbpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-l6z22ukc/_t19105bbpt/index.html' + HTMLFile:0:a:'/tmp/calibre-znrpgpjb/3py7twwkbpt/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-l6z22ukc/_t19105bbpt/marked.png with href: marked.png -Added /tmp/calibre-l6z22ukc/_t19105bbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-l6z22ukc/_t19105bbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-l6z22ukc/_t19105bbpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-znrpgpjb/3py7twwkbpt/marked.png with href: marked.png +Added /tmp/calibre-znrpgpjb/3py7twwkbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-znrpgpjb/3py7twwkbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-znrpgpjb/3py7twwkbpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4577,11 +4613,11 @@ EPUB output written to /build/reproducible-path/calibre-8.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-False-2.epub Output saved to /build/reproducible-path/calibre-8.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-False-2.epub Conversion options changed from defaults: + epub_version: '3' + no_default_epub_cover: True verbose: 2 authors: 'Kovid Goyal' - no_default_epub_cover: True language: 'en' - epub_version: '3' level1_toc: '//h:h2' Resolved conversion options calibre version: 8.10.0 @@ -4625,7 +4661,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, @@ -4650,7 +4686,7 @@ 'no_default_epub_cover': True, '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, @@ -4692,19 +4728,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-l6z22ukc/9zvaf6pdbpt/index.html +on /tmp/calibre-znrpgpjb/ngyzscuubpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-l6z22ukc/9zvaf6pdbpt/index.html' + HTMLFile:0:a:'/tmp/calibre-znrpgpjb/ngyzscuubpt/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-l6z22ukc/9zvaf6pdbpt/marked.png with href: marked.png -Added /tmp/calibre-l6z22ukc/9zvaf6pdbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-l6z22ukc/9zvaf6pdbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-l6z22ukc/9zvaf6pdbpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-znrpgpjb/ngyzscuubpt/marked.png with href: marked.png +Added /tmp/calibre-znrpgpjb/ngyzscuubpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-znrpgpjb/ngyzscuubpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-znrpgpjb/ngyzscuubpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4732,15 +4768,15 @@ Upgrading to EPUB 3... EPUB output written to /build/reproducible-path/calibre-8.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-False-3.epub Output saved to /build/reproducible-path/calibre-8.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-False-3.epub -ok [2.2 s] -test_kepubify_html (calibre.ebooks.oeb.polish.tests.kepubify.KepubifyTests.test_kepubify_html) ... ok [0.0 s] +ok [3.3 s] +test_kepubify_html (calibre.ebooks.oeb.polish.tests.kepubify.KepubifyTests.test_kepubify_html) ... ok [0.1 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: - cover: '/tmp/calibre-l6z22ukc/qjst0ayobpt/lt.png' - level1_toc: '//h:h2' + language: 'en' authors: 'Kovid Goyal' + cover: '/tmp/calibre-znrpgpjb/0imhxbttbpt/lt.png' + level1_toc: '//h:h2' verbose: 2 - language: 'en' Resolved conversion options calibre version: 8.10.0 {'add_alt_text_to_img': False, @@ -4757,7 +4793,7 @@ "'i')) or @class = 'chapter']", 'chapter_mark': 'pagebreak', 'comments': None, - 'cover': '/tmp/calibre-l6z22ukc/qjst0ayobpt/lt.png', + 'cover': '/tmp/calibre-znrpgpjb/0imhxbttbpt/lt.png', 'debug_pipeline': None, 'dehyphenate': True, 'delete_blank_paragraphs': True, @@ -4783,7 +4819,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, @@ -4808,7 +4844,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, @@ -4850,19 +4886,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-l6z22ukc/qjst0ayobpt/index.html +on /tmp/calibre-znrpgpjb/0imhxbttbpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-l6z22ukc/qjst0ayobpt/index.html' + HTMLFile:0:a:'/tmp/calibre-znrpgpjb/0imhxbttbpt/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-l6z22ukc/qjst0ayobpt/marked.png with href: marked.png -Added /tmp/calibre-l6z22ukc/qjst0ayobpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-l6z22ukc/qjst0ayobpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-l6z22ukc/qjst0ayobpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-znrpgpjb/0imhxbttbpt/marked.png with href: marked.png +Added /tmp/calibre-znrpgpjb/0imhxbttbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-znrpgpjb/0imhxbttbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-znrpgpjb/0imhxbttbpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4889,14 +4925,14 @@ Removing anchor from TOC href: index_split_001.html#page2 EPUB output written to /build/reproducible-path/calibre-8.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/simple.epub Output saved to /build/reproducible-path/calibre-8.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/simple.epub -ok [0.1 s] +ok [0.3 s] test_clone (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_clone) Test cloning of containers ... Conversion options changed from defaults: authors: 'Kovid Goyal' language: 'en' + cover: '/tmp/calibre-znrpgpjb/eo0dcc21bpt/lt.png' verbose: 2 level1_toc: '//h:h2' - cover: '/tmp/calibre-l6z22ukc/jggr2i5qbpt/lt.png' Resolved conversion options calibre version: 8.10.0 {'add_alt_text_to_img': False, @@ -4913,7 +4949,7 @@ "'i')) or @class = 'chapter']", 'chapter_mark': 'pagebreak', 'comments': None, - 'cover': '/tmp/calibre-l6z22ukc/jggr2i5qbpt/lt.png', + 'cover': '/tmp/calibre-znrpgpjb/eo0dcc21bpt/lt.png', 'debug_pipeline': None, 'dehyphenate': True, 'delete_blank_paragraphs': True, @@ -4933,7 +4969,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, @@ -4958,7 +4994,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, @@ -5001,19 +5037,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-l6z22ukc/jggr2i5qbpt/index.html +on /tmp/calibre-znrpgpjb/eo0dcc21bpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-l6z22ukc/jggr2i5qbpt/index.html' + HTMLFile:0:a:'/tmp/calibre-znrpgpjb/eo0dcc21bpt/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-l6z22ukc/jggr2i5qbpt/marked.png with href: marked.png -Added /tmp/calibre-l6z22ukc/jggr2i5qbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-l6z22ukc/jggr2i5qbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-l6z22ukc/jggr2i5qbpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-znrpgpjb/eo0dcc21bpt/marked.png with href: marked.png +Added /tmp/calibre-znrpgpjb/eo0dcc21bpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-znrpgpjb/eo0dcc21bpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-znrpgpjb/eo0dcc21bpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -5042,24 +5078,24 @@ Creating indices... AZW3 output written to /build/reproducible-path/calibre-8.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/simple.azw3 Output saved to /build/reproducible-path/calibre-8.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/simple.azw3 -ok [1.3 s] +ok [2.3 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.0 s] +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.4 s] -test_folder_type_map_case (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_folder_type_map_case) ... ok [0.0 s] +Test renaming of files ... ok [0.6 s] +test_folder_type_map_case (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_folder_type_map_case) ... ok [0.1 s] test_merge_file (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_merge_file) -Test merging of files ... ok [0.1 s] +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: + verbose: 2 authors: 'Kovid Goyal' language: 'en' - level1_toc: '//h:h2' - verbose: 2 cover: '/build/reproducible-path/calibre-8.10.0+ds/resources/images/lt.png' + level1_toc: '//h:h2' Resolved conversion options calibre version: 8.10.0 {'add_alt_text_to_img': False, @@ -5102,7 +5138,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, @@ -5127,7 +5163,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, @@ -5201,9 +5237,9 @@ Removing anchor from TOC href: index.html#page1 EPUB output written to /build/reproducible-path/calibre-8.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/split.epub Output saved to /build/reproducible-path/calibre-8.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/split.epub -ok [0.1 s] +ok [0.2 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.2 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) ... CSSImportRule: While processing imported style sheet href=../two.css: OSError('Cannot read Stylesheet.') CSSImportRule: While processing imported style sheet href=../two.css: OSError('Cannot read Stylesheet.') CSSImportRule: While processing imported style sheet href=../two.css: OSError('Cannot read Stylesheet.') @@ -5222,158 +5258,111032 @@ CSSImportRule: While processing imported style sheet href=x/one.css: OSError('Cannot read Stylesheet.') ok [0.0 s] test_remove_property_value (calibre.ebooks.oeb.polish.tests.cascade.CascadeTest.test_remove_property_value) ... ok [0.0 s] -test_resolve_styles (calibre.ebooks.oeb.polish.tests.cascade.CascadeTest.test_resolve_styles) ... ok [0.2 s] +test_resolve_styles (calibre.ebooks.oeb.polish.tests.cascade.CascadeTest.test_resolve_styles) ... ok [0.8 s] test_thumbnail_cache (calibre.db.tests.utils.UtilsTest.test_thumbnail_cache) Test the operation of the thumbnail cache ... ok [0.0 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.4 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 [0.2 s] +Test sorting and searching in composite columns ... ok [0.9 s] test_datetime (calibre.db.tests.reading.ReadingTest.test_datetime) Test the reading of datetimes stored in the db ... ok [0.3 s] test_find_identical_books (calibre.db.tests.reading.ReadingTest.test_find_identical_books) -Test find_identical_books ... ok [0.2 s] +Test find_identical_books ... ok [0.3 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.4 s] +Check that get_categories() returns the same data for both backends ... ok [0.5 s] test_get_cover (calibre.db.tests.reading.ReadingTest.test_get_cover) -Test cover() returns the same data for both backends ... ok [0.3 s] +Test cover() returns the same data for both backends ... ok [0.6 s] test_get_formats (calibre.db.tests.reading.ReadingTest.test_get_formats) -Test reading ebook formats using the format() method ... ok [0.3 s] +Test reading ebook formats using the format() method ... ok [0.5 s] test_get_metadata (calibre.db.tests.reading.ReadingTest.test_get_metadata) -Test get_metadata() returns the same data for both backends ... ok [0.3 s] +Test get_metadata() returns the same data for both backends ... ok [0.6 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.2 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.2 s] -test_last_read_positions (calibre.db.tests.reading.ReadingTest.test_last_read_positions) ... ok [0.2 s] +Test detecting duplicates ... ok [0.4 s] +test_last_read_positions (calibre.db.tests.reading.ReadingTest.test_last_read_positions) ... ok [0.6 s] test_marked_field (calibre.db.tests.reading.ReadingTest.test_marked_field) -Test the marked field ... ok [0.2 s] +Test the marked field ... ok [0.7 s] test_proxy_metadata (calibre.db.tests.reading.ReadingTest.test_proxy_metadata) -Test the ProxyMetadata object used for composite columns ... ok [0.2 s] -test_python_templates (calibre.db.tests.reading.ReadingTest.test_python_templates) ... ok [0.2 s] +Test the ProxyMetadata object used for composite columns ... ok [0.8 s] +test_python_templates (calibre.db.tests.reading.ReadingTest.test_python_templates) ... ok [0.8 s] test_read (calibre.db.tests.reading.ReadingTest.test_read) -Test the reading of data from the database ... ok [0.2 s] +Test the reading of data from the database ... ok [0.7 s] test_restrictions (calibre.db.tests.reading.ReadingTest.test_restrictions) -Test searching with and without restrictions ... ok [0.2 s] +Test searching with and without restrictions ... ok [0.7 s] test_search_caching (calibre.db.tests.reading.ReadingTest.test_search_caching) -Test caching of searches ... ok [0.4 s] +Test caching of searches ... ok [0.8 s] test_searching (calibre.db.tests.reading.ReadingTest.test_searching) -Test searching returns the same data for both backends ... ok [0.2 s] -test_serialize_metadata (calibre.db.tests.reading.ReadingTest.test_serialize_metadata) ... ok [0.3 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.5 s] test_sorting (calibre.db.tests.reading.ReadingTest.test_sorting) -Test sorting ... ok [0.4 s] -test_storing_conversion_options (calibre.db.tests.reading.ReadingTest.test_storing_conversion_options) ... ok [0.2 s] -test_template_db_functions (calibre.db.tests.reading.ReadingTest.test_template_db_functions) ... ok [0.3 s] -test_notes (calibre.db.tests.notes.NotesTest.test_notes) ... ok [0.5 s] -test_acquire (calibre.db.tests.locking.TestLock.test_acquire) ... ok [2.3 s] -test_contention (calibre.db.tests.locking.TestLock.test_contention) ... ok [0.9 s] -test_downgrade (calibre.db.tests.locking.TestLock.test_downgrade) ... ok [0.3 s] -test_multithread_deadlock (calibre.db.tests.locking.TestLock.test_multithread_deadlock) ... ok [0.5 s] +Test sorting ... ok [0.8 s] +test_storing_conversion_options (calibre.db.tests.reading.ReadingTest.test_storing_conversion_options) ... ok [0.6 s] +test_template_db_functions (calibre.db.tests.reading.ReadingTest.test_template_db_functions) ... ok [0.7 s] +test_notes (calibre.db.tests.notes.NotesTest.test_notes) ... ok [0.6 s] +test_acquire (calibre.db.tests.locking.TestLock.test_acquire) ... ok [2.6 s] +test_contention (calibre.db.tests.locking.TestLock.test_contention) ... ok [1.2 s] +test_downgrade (calibre.db.tests.locking.TestLock.test_downgrade) ... ok [0.4 s] +test_multithread_deadlock (calibre.db.tests.locking.TestLock.test_multithread_deadlock) ... ok [0.6 s] test_owns_locks (calibre.db.tests.locking.TestLock.test_owns_locks) ... ok [0.4 s] -test_recursive (calibre.db.tests.locking.TestLock.test_recursive) ... ok [0.2 s] -test_release (calibre.db.tests.locking.TestLock.test_release) ... ok [2.2 s] -test_upgrade (calibre.db.tests.locking.TestLock.test_upgrade) ... ok [0.2 s] +test_recursive (calibre.db.tests.locking.TestLock.test_recursive) ... ok [0.4 s] +test_release (calibre.db.tests.locking.TestLock.test_release) ... ok [2.4 s] +test_upgrade (calibre.db.tests.locking.TestLock.test_upgrade) ... ok [0.3 s] test_get_property (calibre.db.tests.legacy.LegacyTest.test_get_property) -Test the get_property interface for reading data ... ok [0.2 s] +Test the get_property interface for reading data ... ok [0.4 s] test_legacy_adding_books (calibre.db.tests.legacy.LegacyTest.test_legacy_adding_books) -Test various adding/deleting books methods ... ok [0.4 s] +Test various adding/deleting books methods ... ok [0.8 s] test_legacy_conversion_options (calibre.db.tests.legacy.LegacyTest.test_legacy_conversion_options) -Test conversion options API ... ok [0.2 s] +Test conversion options API ... ok [0.5 s] test_legacy_coverage (calibre.db.tests.legacy.LegacyTest.test_legacy_coverage) -Check that the emulation of the legacy interface is (almost) total ... ok [0.2 s] +Check that the emulation of the legacy interface is (almost) total ... ok [0.5 s] test_legacy_custom (calibre.db.tests.legacy.LegacyTest.test_legacy_custom) -Test the legacy API for custom columns ... ok [0.6 s] +Test the legacy API for custom columns ... ok [0.9 s] test_legacy_custom_data (calibre.db.tests.legacy.LegacyTest.test_legacy_custom_data) -Test the API for custom data storage ... ok [0.2 s] +Test the API for custom data storage ... ok [0.5 s] test_legacy_delete_using (calibre.db.tests.legacy.LegacyTest.test_legacy_delete_using) -Test delete_using() API ... ok [0.2 s] +Test delete_using() API ... ok [0.3 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 [0.2 s] +Test read-only methods that are directly equivalent in the old and new interface ... ok [0.4 s] test_legacy_getters (calibre.db.tests.legacy.LegacyTest.test_legacy_getters) -Test various functions to get individual bits of metadata ... ok [0.2 s] +Test various functions to get individual bits of metadata ... ok [0.4 s] test_legacy_saved_search (calibre.db.tests.legacy.LegacyTest.test_legacy_saved_search) -Test legacy saved search API ... ok [0.2 s] +Test legacy saved search API ... ok [0.3 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 [0.5 s] +Test methods that are directly equivalent in the old and new interface ... ok [1.0 s] test_library_wide_properties (calibre.db.tests.legacy.LegacyTest.test_library_wide_properties) -Test library wide properties ... ok [0.2 s] +Test library wide properties ... ok [0.5 s] test_refresh (calibre.db.tests.legacy.LegacyTest.test_refresh) -Test refreshing the view after a change to metadata.db ... ok [1.2 s] +Test refreshing the view after a change to metadata.db ... ok [1.5 s] test_fts_basic (calibre.db.tests.fts.FTSTest.test_fts_basic) ... ok [0.0 s] test_fts_indexing (calibre.db.tests.fts.FTSTest.test_fts_indexing) ... ok [0.1 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.0 s] test_add_books (calibre.db.tests.add_remove.AddRemoveTest.test_add_books) -Test the adding of new books ... ok [0.2 s] +Test the adding of new books ... ok [0.6 s] test_add_format (calibre.db.tests.add_remove.AddRemoveTest.test_add_format) -Test adding formats to an existing book record ... ok [0.2 s] -test_copy_to_library (calibre.db.tests.add_remove.AddRemoveTest.test_copy_to_library) ... ok [0.2 s] +Test adding formats to an existing book record ... ok [0.5 s] +test_copy_to_library (calibre.db.tests.add_remove.AddRemoveTest.test_copy_to_library) ... ok [0.4 s] test_create_book_entry (calibre.db.tests.add_remove.AddRemoveTest.test_create_book_entry) -Test the creation of new book entries ... ok [0.2 s] +Test the creation of new book entries ... ok [0.3 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 [0.2 s] -test_merging_extra_files (calibre.db.tests.add_remove.AddRemoveTest.test_merging_extra_files) ... ok [0.2 s] +Test that adding formats does not create orphans if the file name algorithm changes ... ok [0.3 s] +test_merging_extra_files (calibre.db.tests.add_remove.AddRemoveTest.test_merging_extra_files) ... ok [0.4 s] test_original_fmt (calibre.db.tests.add_remove.AddRemoveTest.test_original_fmt) -Test management of original fmt ... ok [0.2 s] +Test management of original fmt ... ok [0.3 s] test_remove_books (calibre.db.tests.add_remove.AddRemoveTest.test_remove_books) -Test removal of books ... ok [0.3 s] +Test removal of books ... ok [0.8 s] test_remove_formats (calibre.db.tests.add_remove.AddRemoveTest.test_remove_formats) -Test removal of formats from book records ... ok [0.2 s] -test_export_import (calibre.db.tests.filesystem.FilesystemTest.test_export_import) ... ok [0.9 s] -test_find_books_in_directory (calibre.db.tests.filesystem.FilesystemTest.test_find_books_in_directory) ... ok [0.1 s] +Test removal of formats from book records ... ok [0.4 s] +test_export_import (calibre.db.tests.filesystem.FilesystemTest.test_export_import) ... ok [4.5 s] +test_find_books_in_directory (calibre.db.tests.filesystem.FilesystemTest.test_find_books_in_directory) ... ok [0.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.2 s] +Test the changing of the filename but not the folder name ... ok [0.6 s] test_library_move (calibre.db.tests.filesystem.FilesystemTest.test_library_move) -Test moving of library ... ok [0.2 s] +Test moving of library ... ok [0.5 s] test_long_filenames (calibre.db.tests.filesystem.FilesystemTest.test_long_filenames) -Test long file names ... ok [0.2 s] +Test long file names ... ok [0.5 s] test_metadata_move (calibre.db.tests.filesystem.FilesystemTest.test_metadata_move) -Test the moving of files when title/author change ... ok [0.2 s] -test_rename_of_extra_files (calibre.db.tests.filesystem.FilesystemTest.test_rename_of_extra_files) ... ok [0.2 s] +Test the moving of files when title/author change ... ok [0.6 s] +test_rename_of_extra_files (calibre.db.tests.filesystem.FilesystemTest.test_rename_of_extra_files) ... ok [0.4 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.2 s] +Test that folders are not created with a windows reserve name ... ok [0.5 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) ... ok [2.2 s] -test_fts_to_text (calibre.db.tests.fts_api.FTSAPITest.test_fts_to_text) ... ok [0.2 s] -test_fts_triggers (calibre.db.tests.fts_api.FTSAPITest.test_fts_triggers) ... ok [0.2 s] +test_fts_search (calibre.db.tests.fts_api.FTSAPITest.test_fts_search) ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [27.9 s] +test_fts_to_text (calibre.db.tests.fts_api.FTSAPITest.test_fts_to_text) ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [0.6 s] +test_fts_triggers (calibre.db.tests.fts_api.FTSAPITest.test_fts_triggers) ... ok [0.7 s] test_annotations (calibre.db.tests.writing.WritingTest.test_annotations) -Test handling of annotations ... ok [0.2 s] +Test handling of annotations ... ok [0.8 s] test_backup (calibre.db.tests.writing.WritingTest.test_backup) -Test the automatic backup of changed metadata ... ok [2.5 s] -test_changed_events (calibre.db.tests.writing.WritingTest.test_changed_events) ... ok [0.4 s] +Test the automatic backup of changed metadata ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, 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.3 s] +Test that the composite field cache is properly invalidated on writes ... ok [0.8 s] test_conversion_options (calibre.db.tests.writing.WritingTest.test_conversion_options) -Test saving of conversion options ... ok [0.2 s] +Test saving of conversion options ... ok [0.4 s] test_dirtied (calibre.db.tests.writing.WritingTest.test_dirtied) -Test the setting of the dirtied flag and the last_modified column ... ok [0.2 s] +Test the setting of the dirtied flag and the last_modified column ... ok [0.4 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.3 s] +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.1 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.2 s] -test_link_maps (calibre.db.tests.writing.WritingTest.test_link_maps) ... ok [0.2 s] +Test fixing of databases that have items in is_many fields that differ only by case ... ok [0.7 s] +test_link_maps (calibre.db.tests.writing.WritingTest.test_link_maps) ... 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.3 s] +Test the different code paths for writing to a many-many field ... ok [0.8 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.3 s] +Test the different code paths for writing to a many-one field ... ok [1.0 s] test_one_one (calibre.db.tests.writing.WritingTest.test_one_one) -Test setting of values in one-one fields ... ok [1.7 s] +Test setting of values in one-one fields ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [3.8 s] test_preferences (calibre.db.tests.writing.WritingTest.test_preferences) -Test getting and setting of preferences, especially with mutable objects ... ok [0.2 s] +Test getting and setting of preferences, especially with mutable objects ... ok [0.5 s] test_remove_items (calibre.db.tests.writing.WritingTest.test_remove_items) -Test removal of many-(many,one) items ... ok [0.3 s] +Test removal of many-(many,one) items ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [0.7 s] test_rename_items (calibre.db.tests.writing.WritingTest.test_rename_items) -Test renaming of many-(many,one) items ... ok [0.3 s] -test_set_author_data (calibre.db.tests.writing.WritingTest.test_set_author_data) ... ok [0.2 s] +Test renaming of many-(many,one) items ... ok [1.1 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.2 s] +Test setting of cover ... ok [0.3 s] test_set_metadata (calibre.db.tests.writing.WritingTest.test_set_metadata) -Test setting of metadata ... ok [0.3 s] +Test setting of metadata ... ok [0.6 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:40105 +Test basic interaction with the websocket server ... calibre server listening on 127.0.0.1:37059 Too large control frame from client RSV bits set in frame from client RSV bits set in frame from client @@ -5402,9 +116312,26 @@ Client sent undecodeable UTF-8 Client sent undecodeable UTF-8 Client sent undecodeable UTF-8 -ok [0.2 s] -test_websocket_perf (calibre.srv.tests.web_sockets.WebSocketTest.test_websocket_perf) ... calibre server listening on 127.0.0.1:39311 -ok [0.9 s] +ok [0.3 s] +test_websocket_perf (calibre.srv.tests.web_sockets.WebSocketTest.test_websocket_perf) ... calibre server listening on 127.0.0.1:46545 +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.3 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] @@ -5413,45 +116340,62 @@ test_basic_css_transforms (calibre.srv.tests.fast_css_transform.TestTransform.test_basic_css_transforms) ... ok [0.0 s] test_counting_chars_in_elems (calibre.srv.tests.fast_css_transform.TestTransform.test_counting_chars_in_elems) ... ok [0.0 s] test_number_parsing (calibre.srv.tests.fast_css_transform.TestTransform.test_number_parsing) ... ok [0.0 s] -test_char_count (calibre.srv.tests.content.ContentTest.test_char_count) ... ok [0.1 s] +test_char_count (calibre.srv.tests.content.ContentTest.test_char_count) ... ok [0.8 s] test_get (calibre.srv.tests.content.ContentTest.test_get) -Test /get ... calibre server listening on 127.0.0.1:33989 -ok [0.5 s] -test_html_as_json (calibre.srv.tests.content.ContentTest.test_html_as_json) ... ok [0.2 s] -test_last_read_cache (calibre.srv.tests.content.ContentTest.test_last_read_cache) ... ok [0.1 s] +Test /get ... calibre server listening on 127.0.0.1:33189 +ok [1.3 s] +test_html_as_json (calibre.srv.tests.content.ContentTest.test_html_as_json) ... ok [0.5 s] +test_last_read_cache (calibre.srv.tests.content.ContentTest.test_last_read_cache) ... ok [0.3 s] test_static (calibre.srv.tests.content.ContentTest.test_static) -Test serving of static content ... calibre server listening on 127.0.0.1:41151 -ok [0.2 s] +Test serving of static content ... calibre server listening on 127.0.0.1:34167 +ok [0.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:35667 +Test authentication workaround for Android ... calibre server listening on 127.0.0.1:35031 ok [0.1 s] test_basic_auth (calibre.srv.tests.auth.TestAuth.test_basic_auth) -Test HTTP Basic auth ... calibre server listening on 127.0.0.1:36667 -ok [0.0 s] +Test HTTP Basic auth ... calibre server listening on 127.0.0.1:34775 +ok [0.1 s] test_digest_auth (calibre.srv.tests.auth.TestAuth.test_digest_auth) -Test HTTP Digest auth ... calibre server listening on 127.0.0.1:37163 -ok [0.2 s] -test_fail_ban (calibre.srv.tests.auth.TestAuth.test_fail_ban) ... calibre server listening on 127.0.0.1:35089 -ok [0.5 s] -test_library_restrictions (calibre.srv.tests.auth.TestAuth.test_library_restrictions) ... ok [0.1 s] +Test HTTP Digest auth ... calibre server listening on 127.0.0.1:39389 +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [0.4 s] +test_fail_ban (calibre.srv.tests.auth.TestAuth.test_fail_ban) ... calibre server listening on 127.0.0.1:43295 +ok [0.6 s] +test_library_restrictions (calibre.srv.tests.auth.TestAuth.test_library_restrictions) ... ok [0.2 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:41007 -ok [0.2 s] -test_srv_add_book (calibre.srv.tests.ajax.ContentTest.test_srv_add_book) ... calibre server listening on 127.0.0.1:33107 -ok [0.3 s] +Test /ajax/categories and /ajax/search ... calibre server listening on 127.0.0.1:36881 +ok [0.7 s] +test_srv_add_book (calibre.srv.tests.ajax.ContentTest.test_srv_add_book) ... calibre server listening on 127.0.0.1:32775 +ok [0.6 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:45011 -ok [0.3 s] +Test that virtual lib. + search restriction works on all end points ... calibre server listening on 127.0.0.1:38223 +ok [0.7 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:38459 -ok [0.1 s] +Test parsing of Accept-Language ... calibre server listening on 127.0.0.1:42009 +ok [0.2 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:46105 -Unhandled exception in state: State: _job_done Client: 127.0.0.1:43322 Request: GET /test/ HTTP/1.1 +Test basic HTTP protocol conformance ... calibre server listening on 127.0.0.1:43641 +Unhandled exception in state: State: _job_done Client: 127.0.0.1:41636 Request: GET /test/ HTTP/1.1 Traceback (most recent call last): File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/srv/loop.py", line 651, in tick conn.handle_event(event) @@ -5473,43 +116417,333 @@ ~^~ ZeroDivisionError: division by zero -ok [60.2 s] +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [60.3 s] test_http_response (calibre.srv.tests.http.TestHTTP.test_http_response) -Test HTTP protocol responses ... calibre server listening on 127.0.0.1:38147 -ok [0.1 s] +Test HTTP protocol responses ... calibre server listening on 127.0.0.1:46507 +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [0.9 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:45889 +Test static generation ... calibre server listening on 127.0.0.1:39689 ok [0.0 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 [::]:40833 +test_dual_stack (calibre.srv.tests.loop.LoopTest.test_dual_stack) ... calibre server listening on [::]:35851 ok [0.0 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:37261 -ok [0.9 s] +calibre server listening on 127.0.1.1:37453 +ok [1.0 s] test_jobs_manager (calibre.srv.tests.loop.LoopTest.test_jobs_manager) -Test the jobs manager ... ok [1.2 s] +Test the jobs manager ... ok [1.5 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:33009 -ok [0.0 s] +Test plugin semantics ... calibre server listening on 127.0.0.1:34161 +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 ... calibre server listening on 127.0.0.1:37169 +Test socket activation ... calibre server listening on 127.0.0.1:58599 ok [0.0 s] test_ssl (calibre.srv.tests.loop.LoopTest.test_ssl) -Test serving over SSL ... calibre server listening on 127.0.0.1:34667 -ok [0.3 s] +Test serving over SSL ... calibre server listening on 127.0.0.1:35385 +ok [1.1 s] test_workers (calibre.srv.tests.loop.LoopTest.test_workers) -Test worker semantics ... calibre server listening on 127.0.0.1:43177 -calibre server listening on 127.0.0.1:43903 +Test worker semantics ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +calibre server listening on 127.0.0.1:36865 +calibre server listening on 127.0.0.1:42763 +Failed to shutdown 1 workers in ThreadPool cleanly ServerWorker failed to notify server on job completion Traceback (most recent call last): File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/srv/pool.py", line 41, in run @@ -5523,34 +116757,33 @@ ~~~~~~~~~~~~~~~~~~~~~^^^^^^ ValueError: write to closed file -Failed to shutdown 1 workers in ThreadPool cleanly ok [0.2 s] -test_7z (calibre.test_build.BuildTest.test_7z) ... ok [0.1 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.6 s] +test_certgen (calibre.test_build.BuildTest.test_certgen) ... ok [0.2 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_ffmpeg (calibre.test_build.BuildTest.test_ffmpeg) ... ok [0.0 s] +test_feedparser (calibre.test_build.BuildTest.test_feedparser) ... ok [0.1 s] +test_ffmpeg (calibre.test_build.BuildTest.test_ffmpeg) ... ok [0.6 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.1 s] +test_fonttools (calibre.test_build.BuildTest.test_fonttools) ... ok [0.4 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.0 s] -test_imaging (calibre.test_build.BuildTest.test_imaging) ... 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.2 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.0 s] -test_msgpack (calibre.test_build.BuildTest.test_msgpack) ... ok [0.1 s] +test_markdown (calibre.test_build.BuildTest.test_markdown) ... ok [0.1 s] +test_msgpack (calibre.test_build.BuildTest.test_msgpack) ... ok [0.6 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_piper (calibre.test_build.BuildTest.test_piper) ... ok [0.0 s] -test_plugins (calibre.test_build.BuildTest.test_plugins) ... ok [0.0 s] +test_piper (calibre.test_build.BuildTest.test_piper) ... ok [0.3 s] +test_plugins (calibre.test_build.BuildTest.test_plugins) ... ok [0.1 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] @@ -5563,14 +116796,31 @@ 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.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_forked_map (calibre.utils.forked_map.find_tests..TestForkedMap.test_forked_map) ... ok [0.6 s] +test_forked_map (calibre.utils.forked_map.find_tests..TestForkedMap.test_forked_map) ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.7 s] -Slowest tests: calibre.srv.tests.http.TestHTTP.test_http_basic [60.2 s] calibre.db.tests.writing.WritingTest.test_backup [2.5 s] calibre.db.tests.locking.TestLock.test_acquire [2.3 s] +Slowest tests: calibre.srv.tests.http.TestHTTP.test_http_basic [60.3 s] calibre.db.tests.fts_api.FTSAPITest.test_fts_search [27.9 s] calibre.db.tests.filesystem.FilesystemTest.test_export_import [4.5 s] ---------------------------------------------------------------------- -Ran 342 tests in 113.336s +Ran 342 tests in 191.080s OK (skipped=10) env TZ=UTC CI=true python3.13 setup.py test --test-name=ajax_book --exclude-test-name=fts_pool --exclude-test-name=dbus --exclude-test-name=recipe_browser_qt --exclude-test-name=recipe_browser_webengine --exclude-test-name=import_of_all_python_modules @@ -5581,11 +116831,11 @@ * test_ajax_book (calibre.srv.tests.ajax.ContentTest.test_ajax_book) -Test /ajax/book ... calibre server listening on 127.0.0.1:39333 -ok [0.2 s] +Test /ajax/book ... calibre server listening on 127.0.0.1:45535 +ok [0.6 s] ---------------------------------------------------------------------- -Ran 1 test in 0.248s +Ran 1 test in 0.571s OK env TZ=UTC CI=true python3.13 setup.py test --test-name=qt --exclude-test-name=fts_pool --exclude-test-name=dbus --exclude-test-name=recipe_browser_qt --exclude-test-name=recipe_browser_webengine --exclude-test-name=import_of_all_python_modules @@ -5634,10 +116884,10 @@ * in-process-gpu * use-gl disabled -ok [3.7 s] +ok [8.7 s] ---------------------------------------------------------------------- -Ran 1 test in 3.650s +Ran 1 test in 8.692s OK make[3]: Leaving directory '/build/reproducible-path/calibre-8.10.0+ds' @@ -5667,7 +116917,7 @@ Building 30 extensions ####### Building headless QPA plugin ####### -* build took 0.1 seconds +* build took 0.2 seconds * * Running gui @@ -5712,7 +116962,7 @@ calibre successfully installed. You can start it by running the command calibre -* install took 6.7 seconds +* install took 15.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 @@ -5782,8 +117032,8 @@ dh_md5sums -O--buildsystem=makefile dh_builddeb -O--buildsystem=makefile dpkg-deb: building package 'calibre' in '../calibre_8.10.0+ds-3_all.deb'. -dpkg-deb: building package 'calibre-bin-dbgsym' in '../calibre-bin-dbgsym_8.10.0+ds-3_arm64.deb'. dpkg-deb: building package 'calibre-bin' in '../calibre-bin_8.10.0+ds-3_arm64.deb'. +dpkg-deb: building package 'calibre-bin-dbgsym' in '../calibre-bin-dbgsym_8.10.0+ds-3_arm64.deb'. dpkg-genbuildinfo --build=binary -O../calibre_8.10.0+ds-3_arm64.buildinfo dpkg-genchanges --build=binary -O../calibre_8.10.0+ds-3_arm64.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -5791,12 +117041,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/3362688/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3362688/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/3772923 and its subdirectories -I: Current time: Mon Oct 12 12:41:42 -12 2026 -I: pbuilder-time-stamp: 1791852102 +I: removing directory /srv/workspace/pbuilder/3362688 and its subdirectories +I: Current time: Wed Sep 10 08:38:45 +14 2025 +I: pbuilder-time-stamp: 1757443125