Diff of the two buildlogs: -- --- b1/build.log 2025-09-07 00:25:48.998139122 +0000 +++ b2/build.log 2025-09-07 00:32:42.886645620 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sat Sep 6 12:20:00 -12 2025 -I: pbuilder-time-stamp: 1757204400 +I: Current time: Sat Oct 10 20:48:53 +14 2026 +I: pbuilder-time-stamp: 1791614933 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-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/1474696/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3018003/tmp/hooks/D01_modify_environment starting +debug: Running on codethink03-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 Oct 10 06:49 /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/3018003/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3018003/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='unstable' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='c545ac93d0f049109c95c744e0aa1e5d' - 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='1474696' - PS1='# ' - PS2='> ' + INVOCATION_ID=b52d3a1ed33e41cb86ea856b57424ab0 + 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=3018003 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.NXclYI6O/pbuilderrc_stA6 --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.NXclYI6O/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.NXclYI6O/pbuilderrc_GwYI --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.NXclYI6O/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 codethink04-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 12:30 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1474696/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/3018003/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -956,7 +988,7 @@ Get: 600 http://deb.debian.org/debian unstable/main arm64 qt6-wayland arm64 6.8.2-4 [170 kB] Get: 601 http://deb.debian.org/debian unstable/main arm64 webp arm64 1.5.0-0.1 [196 kB] Get: 602 http://deb.debian.org/debian unstable/main arm64 xdg-utils all 1.2.1-2 [75.8 kB] -Fetched 415 MB in 2s (255 MB/s) +Fetched 415 MB in 2s (247 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 ... 20020 files and directories currently installed.) @@ -2878,8 +2910,8 @@ Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' -Local time is now: Sun Sep 7 00:21:00 UTC 2025. -Universal Time is now: Sun Sep 7 00:21:00 UTC 2025. +Local time is now: Sat Oct 10 06:49:53 UTC 2026. +Universal Time is now: Sat Oct 10 06:49:53 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libxcb-present0:arm64 (1.17.0-2+b1) ... @@ -3405,7 +3437,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/3018003/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/3018003/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 @@ -3477,16 +3513,16 @@ 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++17 -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/sqlite_extension.cpp -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/sqlite_extension/sqlite_extension.o cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ is not valid for C++ -gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-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/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/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/freetype2 -I/usr/include/libpng16 -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++ @@ -3498,34 +3534,34 @@ 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 -I/usr/include/podofo -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 +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 -I/usr/include/podofo -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 -I/usr/include/podofo -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 -I/usr/include/podofo -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 -I/usr/include/podofo -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 -I/usr/include/podofo -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 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 -I/usr/include/podofo -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 -I/usr/include/podofo -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 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 -I/usr/include/podofo -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 +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 -I/usr/include/podofo -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 -I/usr/include/podofo -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 -I/usr/include/podofo -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 -I/usr/include/podofo -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 +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 -I/usr/include/podofo -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 -I/usr/include/podofo -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 -I/usr/include/podofo -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 -I/usr/include/podofo -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 +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 -I/usr/include/podofo -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++17 -I/usr/include/onnxruntime -I/usr/include -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/tts/piper.cpp -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/piper/piper.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++17 -I/usr/include -I/usr/include/onnxruntime -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/utils/tts/piper.cpp -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/piper/piper.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 -c /build/reproducible-path/calibre-8.10.0+ds/src/calibre/srv/html_as_json.cpp -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/html_as_json/html_as_json.o @@ -3538,10 +3574,10 @@ 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/devices/libusb/libusb.c -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/libusb/libusb.o -gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-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/devices/mtp/unix/devices.c -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/libmtp/devices.o - gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-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/devices/mtp/unix/libmtp.c -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/libmtp/libmtp.o +gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-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/devices/mtp/unix/devices.c -o /build/reproducible-path/calibre-8.10.0+ds/build/objects/libmtp/devices.o + Linking 26 files... g++ /build/reproducible-path/calibre-8.10.0+ds/build/objects/hunspell/hunspell_wrapper.o -o /build/reproducible-path/calibre-8.10.0+ds/src/calibre/plugins/hunspell.so -Wall -Wl,-z,relro -Wl,-z,now -shared -L/usr/lib/aarch64-linux-gnu -lpython3.13 -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -L/usr/lib -lhunspell-1.7 /usr/lib/aarch64-linux-gnu/libpython3.13.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. @@ -3906,7 +3942,7 @@ -- Performing Test HAVE_STDATOMIC -- Performing Test HAVE_STDATOMIC - Success -- Found WrapAtomic: TRUE --- Configuring done (1.9s) +-- Configuring done (2.7s) -- Generating done (0.0s) -- 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' @@ -3955,13 +3991,13 @@ 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' -[ 50%] Building CXX object CMakeFiles/headless.dir/main.cpp.o +[ 33%] Building CXX object CMakeFiles/headless.dir/main.cpp.o [ 50%] 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 [ 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/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 -/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_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_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 @@ -3981,21 +4017,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 60.8 seconds +* build took 129.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 @@ -4094,7 +4130,7 @@ Compiled 95 forms Creating icon theme resource file Creating images.qrc -* gui took 1.1 seconds +* gui took 2.8 seconds python3.13 setup.py kakasi * @@ -4102,10 +4138,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.5 seconds +* kakasi took 1.4 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' @@ -4128,16 +4164,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 [0.7 s] -test_safe_atexit (calibre.utils.safe_atexit.find_tests..TestSafeAtexit.test_safe_atexit) ... ok [0.5 s] +test_listener_ipc (calibre.gui2.listener.find_tests..TestIPC.test_listener_ipc) ... ok [1.8 s] +test_safe_atexit (calibre.utils.safe_atexit.find_tests..TestSafeAtexit.test_safe_atexit) ... ok [1.1 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_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 [0.5 s] -test_hyphenate_html (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_hyphenate_html) ... ok [0.1 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.7 s] +test_hyphenate_html (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_hyphenate_html) ... ok [0.4 s] +test_locale_to_hyphen_dictionary (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_locale_to_hyphen_dictionary) ... ok [0.2 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] @@ -4146,11 +4182,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.2 s] -test_exclusive_file_other_process_kill (calibre.utils.test_lock.IPCLockTest.test_exclusive_file_other_process_kill) ... ok [0.1 s] +test_exclusive_file_other_process_clean (calibre.utils.test_lock.IPCLockTest.test_exclusive_file_other_process_clean) ... ok [0.4 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 [1.3 s] -test_tdir_in_cache_dir (calibre.utils.test_lock.IPCLockTest.test_tdir_in_cache_dir) ... ok [0.3 s] +test_single_instance (calibre.utils.test_lock.IPCLockTest.test_single_instance) ... ok [3.2 s] +test_tdir_in_cache_dir (calibre.utils.test_lock.IPCLockTest.test_tdir_in_cache_dir) ... ok [0.7 s] test_shared_file (calibre.utils.shared_file.find_tests..SharedFileTest.test_shared_file) ... ok [0.0 s] test_author_mapper (calibre.ebooks.metadata.author_mapper.find_tests..TestAuthorMapper.test_author_mapper) ... ok [0.0 s] test_tag_mapper (calibre.ebooks.metadata.tag_mapper.find_tests..TestTagMapper.test_tag_mapper) ... ok [0.0 s] @@ -4172,7 +4208,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.1 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] @@ -4202,13 +4238,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.3 s] test_non_bmp (calibre.utils.matcher.test..Test.test_non_bmp) ... ok [0.0 s] test_cfi_decode (calibre.ebooks.epub.cfi.tests.Tests.test_cfi_decode) ... ok [0.0 s] test_parsing (calibre.ebooks.epub.cfi.tests.Tests.test_parsing) ... ok [0.0 s] @@ -4267,7 +4303,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] @@ -4286,8 +4322,8 @@ testReading (calibre.ebooks.metadata.opf2.suite..OPFTest.testReading) ... ok [0.0 s] 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.0 s] +test_epub2_covers (calibre.ebooks.oeb.polish.tests.structure.Structure.test_epub2_covers) ... ok [0.1 s] +test_epub3_covers (calibre.ebooks.oeb.polish.tests.structure.Structure.test_epub3_covers) ... ok [0.1 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] @@ -4298,7 +4334,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-ocfwzgm7/9ygx8vgbbpt/lt.png' + cover: '/tmp/calibre-xvldy_5w/ipdc3pffbpt/lt.png' language: 'en' verbose: 2 level1_toc: '//h:h2' @@ -4319,7 +4355,7 @@ "'i')) or @class = 'chapter']", 'chapter_mark': 'pagebreak', 'comments': None, - 'cover': '/tmp/calibre-ocfwzgm7/9ygx8vgbbpt/lt.png', + 'cover': '/tmp/calibre-xvldy_5w/ipdc3pffbpt/lt.png', 'debug_pipeline': None, 'dehyphenate': True, 'delete_blank_paragraphs': True, @@ -4345,7 +4381,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, @@ -4370,7 +4406,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, @@ -4412,19 +4448,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-ocfwzgm7/9ygx8vgbbpt/index.html +on /tmp/calibre-xvldy_5w/ipdc3pffbpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-ocfwzgm7/9ygx8vgbbpt/index.html' + HTMLFile:0:a:'/tmp/calibre-xvldy_5w/ipdc3pffbpt/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-ocfwzgm7/9ygx8vgbbpt/marked.png with href: marked.png -Added /tmp/calibre-ocfwzgm7/9ygx8vgbbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-ocfwzgm7/9ygx8vgbbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-ocfwzgm7/9ygx8vgbbpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-xvldy_5w/ipdc3pffbpt/marked.png with href: marked.png +Added /tmp/calibre-xvldy_5w/ipdc3pffbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-xvldy_5w/ipdc3pffbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-xvldy_5w/ipdc3pffbpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4452,12 +4488,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: - verbose: 2 + language: 'en' epub_version: '3' + verbose: 2 + cover: '/tmp/calibre-xvldy_5w/jt3f2mdmbpt/lt.png' level1_toc: '//h:h2' - cover: '/tmp/calibre-ocfwzgm7/ktkj263hbpt/lt.png' authors: 'Kovid Goyal' - language: 'en' Resolved conversion options calibre version: 8.10.0 {'add_alt_text_to_img': False, @@ -4474,7 +4510,7 @@ "'i')) or @class = 'chapter']", 'chapter_mark': 'pagebreak', 'comments': None, - 'cover': '/tmp/calibre-ocfwzgm7/ktkj263hbpt/lt.png', + 'cover': '/tmp/calibre-xvldy_5w/jt3f2mdmbpt/lt.png', 'debug_pipeline': None, 'dehyphenate': True, 'delete_blank_paragraphs': True, @@ -4500,7 +4536,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, @@ -4525,7 +4561,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, @@ -4567,19 +4603,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-ocfwzgm7/ktkj263hbpt/index.html +on /tmp/calibre-xvldy_5w/jt3f2mdmbpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-ocfwzgm7/ktkj263hbpt/index.html' + HTMLFile:0:a:'/tmp/calibre-xvldy_5w/jt3f2mdmbpt/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-ocfwzgm7/ktkj263hbpt/marked.png with href: marked.png -Added /tmp/calibre-ocfwzgm7/ktkj263hbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-ocfwzgm7/ktkj263hbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-ocfwzgm7/ktkj263hbpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-xvldy_5w/jt3f2mdmbpt/marked.png with href: marked.png +Added /tmp/calibre-xvldy_5w/jt3f2mdmbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-xvldy_5w/jt3f2mdmbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-xvldy_5w/jt3f2mdmbpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4608,10 +4644,10 @@ 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: - language: 'en' - verbose: 2 level1_toc: '//h:h2' authors: 'Kovid Goyal' + verbose: 2 + language: 'en' no_default_epub_cover: True Resolved conversion options calibre version: 8.10.0 @@ -4655,7 +4691,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, @@ -4680,7 +4716,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, @@ -4722,19 +4758,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-ocfwzgm7/0ssxx__6bpt/index.html +on /tmp/calibre-xvldy_5w/lmyk6n2rbpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-ocfwzgm7/0ssxx__6bpt/index.html' + HTMLFile:0:a:'/tmp/calibre-xvldy_5w/lmyk6n2rbpt/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-ocfwzgm7/0ssxx__6bpt/marked.png with href: marked.png -Added /tmp/calibre-ocfwzgm7/0ssxx__6bpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-ocfwzgm7/0ssxx__6bpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-ocfwzgm7/0ssxx__6bpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-xvldy_5w/lmyk6n2rbpt/marked.png with href: marked.png +Added /tmp/calibre-xvldy_5w/lmyk6n2rbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-xvldy_5w/lmyk6n2rbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-xvldy_5w/lmyk6n2rbpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4762,12 +4798,12 @@ 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: - authors: 'Kovid Goyal' - verbose: 2 - no_default_epub_cover: True epub_version: '3' - language: 'en' + no_default_epub_cover: True + verbose: 2 + authors: 'Kovid Goyal' level1_toc: '//h:h2' + language: 'en' Resolved conversion options calibre version: 8.10.0 {'add_alt_text_to_img': False, @@ -4810,7 +4846,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, @@ -4835,7 +4871,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, @@ -4877,19 +4913,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-ocfwzgm7/mcd2dcc9bpt/index.html +on /tmp/calibre-xvldy_5w/lcgt1by0bpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-ocfwzgm7/mcd2dcc9bpt/index.html' + HTMLFile:0:a:'/tmp/calibre-xvldy_5w/lcgt1by0bpt/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-ocfwzgm7/mcd2dcc9bpt/marked.png with href: marked.png -Added /tmp/calibre-ocfwzgm7/mcd2dcc9bpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-ocfwzgm7/mcd2dcc9bpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-ocfwzgm7/mcd2dcc9bpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-xvldy_5w/lcgt1by0bpt/marked.png with href: marked.png +Added /tmp/calibre-xvldy_5w/lcgt1by0bpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-xvldy_5w/lcgt1by0bpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-xvldy_5w/lcgt1by0bpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4917,12 +4953,12 @@ 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 [1.7 s] -test_kepubify_html (calibre.ebooks.oeb.polish.tests.kepubify.KepubifyTests.test_kepubify_html) ... ok [0.0 s] +ok [3.8 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-ocfwzgm7/k0hi8_anbpt/lt.png' language: 'en' + cover: '/tmp/calibre-xvldy_5w/aeq4ksjzbpt/lt.png' level1_toc: '//h:h2' authors: 'Kovid Goyal' verbose: 2 @@ -4942,7 +4978,7 @@ "'i')) or @class = 'chapter']", 'chapter_mark': 'pagebreak', 'comments': None, - 'cover': '/tmp/calibre-ocfwzgm7/k0hi8_anbpt/lt.png', + 'cover': '/tmp/calibre-xvldy_5w/aeq4ksjzbpt/lt.png', 'debug_pipeline': None, 'dehyphenate': True, 'delete_blank_paragraphs': True, @@ -4968,7 +5004,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, @@ -4993,7 +5029,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, @@ -5035,19 +5071,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-ocfwzgm7/k0hi8_anbpt/index.html +on /tmp/calibre-xvldy_5w/aeq4ksjzbpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-ocfwzgm7/k0hi8_anbpt/index.html' + HTMLFile:0:a:'/tmp/calibre-xvldy_5w/aeq4ksjzbpt/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-ocfwzgm7/k0hi8_anbpt/marked.png with href: marked.png -Added /tmp/calibre-ocfwzgm7/k0hi8_anbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-ocfwzgm7/k0hi8_anbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-ocfwzgm7/k0hi8_anbpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-xvldy_5w/aeq4ksjzbpt/marked.png with href: marked.png +Added /tmp/calibre-xvldy_5w/aeq4ksjzbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-xvldy_5w/aeq4ksjzbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-xvldy_5w/aeq4ksjzbpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -5074,14 +5110,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.2 s] test_clone (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_clone) Test cloning of containers ... Conversion options changed from defaults: - verbose: 2 - authors: 'Kovid Goyal' language: 'en' + cover: '/tmp/calibre-xvldy_5w/l2o3k0f2bpt/lt.png' + authors: 'Kovid Goyal' + verbose: 2 level1_toc: '//h:h2' - cover: '/tmp/calibre-ocfwzgm7/l4aobqf1bpt/lt.png' Resolved conversion options calibre version: 8.10.0 {'add_alt_text_to_img': False, @@ -5098,7 +5134,7 @@ "'i')) or @class = 'chapter']", 'chapter_mark': 'pagebreak', 'comments': None, - 'cover': '/tmp/calibre-ocfwzgm7/l4aobqf1bpt/lt.png', + 'cover': '/tmp/calibre-xvldy_5w/l2o3k0f2bpt/lt.png', 'debug_pipeline': None, 'dehyphenate': True, 'delete_blank_paragraphs': True, @@ -5118,7 +5154,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, @@ -5143,7 +5179,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, @@ -5186,19 +5222,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-ocfwzgm7/l4aobqf1bpt/index.html +on /tmp/calibre-xvldy_5w/l2o3k0f2bpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-ocfwzgm7/l4aobqf1bpt/index.html' + HTMLFile:0:a:'/tmp/calibre-xvldy_5w/l2o3k0f2bpt/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-ocfwzgm7/l4aobqf1bpt/marked.png with href: marked.png -Added /tmp/calibre-ocfwzgm7/l4aobqf1bpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-ocfwzgm7/l4aobqf1bpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-ocfwzgm7/l4aobqf1bpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-xvldy_5w/l2o3k0f2bpt/marked.png with href: marked.png +Added /tmp/calibre-xvldy_5w/l2o3k0f2bpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-xvldy_5w/l2o3k0f2bpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-xvldy_5w/l2o3k0f2bpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -5227,24 +5263,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.0 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 removal of files from the container ... ok [0.2 s] test_file_rename (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_file_rename) -Test renaming of files ... ok [0.3 s] +Test renaming of files ... ok [0.8 s] test_folder_type_map_case (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_folder_type_map_case) ... ok [0.0 s] test_merge_file (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_merge_file) -Test merging of files ... ok [0.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: + level1_toc: '//h:h2' authors: 'Kovid Goyal' - verbose: 2 language: 'en' + 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, @@ -5287,7 +5323,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, @@ -5312,7 +5348,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, @@ -5372,8 +5408,8 @@ Found 3 items of level: p_1 Found 1 items of level: div_1 Found 3 items of level: p_2 -Ignoring level p_1 Ignoring level p_2 +Ignoring level p_1 div_1 left margin stats: Counter() div_1 right margin stats: Counter() Cleaning up manifest... @@ -5386,9 +5422,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.1 s] +test_font_stats (calibre.ebooks.oeb.polish.tests.cascade.CascadeTest.test_font_stats) ... ok [0.2 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.') @@ -5411,154 +5447,62000 @@ 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.3 s] +Test getting the author sort for authors from the db ... ok [0.6 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.4 s] test_datetime (calibre.db.tests.reading.ReadingTest.test_datetime) -Test the reading of datetimes stored in the db ... ok [0.2 s] +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.6 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.2 s] +Check that get_categories() returns the same data for both backends ... ok [0.4 s] test_get_cover (calibre.db.tests.reading.ReadingTest.test_get_cover) -Test cover() returns the same data for both backends ... ok [0.2 s] +Test cover() returns the same data for both backends ... ok [0.3 s] test_get_formats (calibre.db.tests.reading.ReadingTest.test_get_formats) -Test reading ebook formats using the format() method ... ok [0.2 s] +Test reading ebook formats using the format() method ... ok [0.4 s] test_get_metadata (calibre.db.tests.reading.ReadingTest.test_get_metadata) -Test get_metadata() returns the same data for both backends ... ok [0.2 s] +Test get_metadata() returns the same data for both backends ... ok [0.3 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.4 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.3 s] +test_last_read_positions (calibre.db.tests.reading.ReadingTest.test_last_read_positions) ... ok [1.0 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.4 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_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.4 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.3 s] test_search_caching (calibre.db.tests.reading.ReadingTest.test_search_caching) -Test caching of searches ... ok [0.3 s] +Test caching of searches ... ok [0.5 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.2 s] +Test searching returns the same data for both backends ... ok [0.5 s] +test_serialize_metadata (calibre.db.tests.reading.ReadingTest.test_serialize_metadata) ... ok [0.4 s] test_sorting (calibre.db.tests.reading.ReadingTest.test_sorting) -Test sorting ... ok [0.2 s] +Test sorting ... ok [0.3 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.2 s] -test_notes (calibre.db.tests.notes.NotesTest.test_notes) ... ok [0.3 s] -test_acquire (calibre.db.tests.locking.TestLock.test_acquire) ... ok [2.2 s] -test_contention (calibre.db.tests.locking.TestLock.test_contention) ... ok [0.6 s] -test_downgrade (calibre.db.tests.locking.TestLock.test_downgrade) ... ok [0.2 s] -test_multithread_deadlock (calibre.db.tests.locking.TestLock.test_multithread_deadlock) ... ok [0.4 s] -test_owns_locks (calibre.db.tests.locking.TestLock.test_owns_locks) ... ok [0.2 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.1 s] +test_template_db_functions (calibre.db.tests.reading.ReadingTest.test_template_db_functions) ... ok [0.4 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.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.6 s] +test_owns_locks (calibre.db.tests.locking.TestLock.test_owns_locks) ... ok [0.3 s] +test_recursive (calibre.db.tests.locking.TestLock.test_recursive) ... ok [0.3 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.3 s] +Test various adding/deleting books methods ... ok [0.6 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.3 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.4 s] test_legacy_custom (calibre.db.tests.legacy.LegacyTest.test_legacy_custom) -Test the legacy API for custom columns ... ok [0.5 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.4 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.4 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.4 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.6 s] +Test methods that are directly equivalent in the old and new interface ... ok [0.9 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.3 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.4 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_indexing (calibre.db.tests.fts.FTSTest.test_fts_indexing) ... ok [0.2 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.3 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.3 s] +test_copy_to_library (calibre.db.tests.add_remove.AddRemoveTest.test_copy_to_library) ... ok [0.3 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.4 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 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.2 s] test_original_fmt (calibre.db.tests.add_remove.AddRemoveTest.test_original_fmt) Test management of original fmt ... ok [0.2 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.5 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.2 s] +Test removal of formats from book records ... ok [0.4 s] +test_export_import (calibre.db.tests.filesystem.FilesystemTest.test_export_import) ... ok [1.8 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.3 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.4 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.4 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.5 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.4 s] test_windows_atomic_move (calibre.db.tests.filesystem.FilesystemTest.test_windows_atomic_move) Test book file open in another process when changing metadata ... skipped 'Windows only' [0.0 s] -test_fts_search (calibre.db.tests.fts_api.FTSAPITest.test_fts_search) ... ok [2.3 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 +ok [10.5 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.4 s] +test_fts_triggers (calibre.db.tests.fts_api.FTSAPITest.test_fts_triggers) ... ok [0.4 s] test_annotations (calibre.db.tests.writing.WritingTest.test_annotations) -Test handling of annotations ... ok [0.2 s] +Test handling of annotations ... ok [0.4 s] test_backup (calibre.db.tests.writing.WritingTest.test_backup) -Test the automatic backup of changed metadata ... ok [2.4 s] -test_changed_events (calibre.db.tests.writing.WritingTest.test_changed_events) ... ok [0.4 s] +Test the automatic backup of changed metadata ... ok [2.8 s] +test_changed_events (calibre.db.tests.writing.WritingTest.test_changed_events) ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, 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_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.6 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.3 s] test_dump_and_restore (calibre.db.tests.writing.WritingTest.test_dump_and_restore) Test roundtripping the db through SQL ... get_categories: item Unknown is not in authors list! -ok [0.3 s] +ok [0.6 s] test_fix_case_duplicates (calibre.db.tests.writing.WritingTest.test_fix_case_duplicates) -Test fixing of databases that have items in is_many fields that differ only by case ... ok [0.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.5 s] +test_link_maps (calibre.db.tests.writing.WritingTest.test_link_maps) ... ok [0.3 s] test_many_many_basic (calibre.db.tests.writing.WritingTest.test_many_many_basic) -Test the different code paths for writing to a many-many field ... ok [0.3 s] +Test the different code paths for writing to a many-many field ... ok [0.6 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.2 s] +Test the different code paths for writing to a many-one field ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, 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.5 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 ... ok [2.7 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.4 s] test_remove_items (calibre.db.tests.writing.WritingTest.test_remove_items) -Test removal of many-(many,one) items ... ok [0.2 s] +Test removal of many-(many,one) items ... ok [0.5 s] test_rename_items (calibre.db.tests.writing.WritingTest.test_rename_items) -Test renaming of many-(many,one) items ... ok [0.3 s] +Test renaming 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 [1.6 s] test_set_author_data (calibre.db.tests.writing.WritingTest.test_set_author_data) ... ok [0.2 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:43013 +Test basic interaction with the websocket server ... calibre server listening on 127.0.0.1:41541 Too large control frame from client RSV bits set in frame from client RSV bits set in frame from client @@ -5585,11 +67467,57 @@ Client sent continuation frame with non-zero opcode Client sent undecodeable UTF-8 Client sent undecodeable UTF-8 +FAIL [0.2 s] +test_websocket_basic (calibre.srv.tests.web_sockets.WebSocketTest.test_websocket_basic) +Test basic interaction with the websocket server ... Retrying test test_websocket_basic after failure/error +calibre server listening on 127.0.0.1:35123 +Too large control frame from client +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +RSV bits set in frame from client +RSV bits set in frame from client +RSV bits set in frame from client +RSV bits set in frame from client +RSV bits set in frame from client +RSV bits set in frame from client +Unknown OPCODE from client: 3 +Unknown OPCODE from client: 4 +Unknown OPCODE from client: 5 +Unknown OPCODE from client: 6 +Unknown OPCODE from client: 7 +Unknown OPCODE from client: 11 +Unknown OPCODE from client: 12 +Unknown OPCODE from client: 13 +Unknown OPCODE from client: 14 +Unknown OPCODE from client: 15 +Fragmented control frame from client +Fragmented control frame from client +Too large control frame from client +Client sent continuation frame with no message to continue +Client sent continuation frame with no message to continue +Client sent continuation frame with no message to continue +Client sent continuation frame with non-zero opcode Client sent undecodeable UTF-8 Client sent undecodeable UTF-8 -ok [0.2 s] -test_websocket_perf (calibre.srv.tests.web_sockets.WebSocketTest.test_websocket_perf) ... calibre server listening on 127.0.0.1:34071 -ok [1.0 s] +FAIL [0.2 s] +test_websocket_perf (calibre.srv.tests.web_sockets.WebSocketTest.test_websocket_perf) ... Retrying test test_websocket_basic after failure/error +calibre server listening on 127.0.0.1:34289 +ok [1.1 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] @@ -5598,45 +67526,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.2 s] test_get (calibre.srv.tests.content.ContentTest.test_get) -Test /get ... calibre server listening on 127.0.0.1:41209 -ok [0.6 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:42271 +ok [0.8 s] +test_html_as_json (calibre.srv.tests.content.ContentTest.test_html_as_json) ... ok [0.3 s] +test_last_read_cache (calibre.srv.tests.content.ContentTest.test_last_read_cache) ... ok [0.2 s] test_static (calibre.srv.tests.content.ContentTest.test_static) -Test serving of static content ... calibre server listening on 127.0.0.1:41973 -ok [0.2 s] +Test serving of static content ... calibre server listening on 127.0.0.1:34099 +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:40273 -ok [0.1 s] +Test authentication workaround for Android ... calibre server listening on 127.0.0.1:44503 +ok [0.2 s] test_basic_auth (calibre.srv.tests.auth.TestAuth.test_basic_auth) -Test HTTP Basic auth ... calibre server listening on 127.0.0.1:37465 -ok [0.0 s] -test_digest_auth (calibre.srv.tests.auth.TestAuth.test_digest_auth) -Test HTTP Digest auth ... calibre server listening on 127.0.0.1:39013 +Test HTTP Basic auth ... calibre server listening on 127.0.0.1:45395 ok [0.1 s] -test_fail_ban (calibre.srv.tests.auth.TestAuth.test_fail_ban) ... calibre server listening on 127.0.0.1:46509 -ok [0.5 s] +test_digest_auth (calibre.srv.tests.auth.TestAuth.test_digest_auth) +Test HTTP Digest auth ... calibre server listening on 127.0.0.1:43215 +ok [0.2 s] +test_fail_ban (calibre.srv.tests.auth.TestAuth.test_fail_ban) ... calibre server listening on 127.0.0.1:41447 +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, 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_library_restrictions (calibre.srv.tests.auth.TestAuth.test_library_restrictions) ... ok [0.1 s] test_ajax_categories (calibre.srv.tests.ajax.ContentTest.test_ajax_categories) -Test /ajax/categories and /ajax/search ... calibre server listening on 127.0.0.1:41227 -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:46797 -ok [0.2 s] +Test /ajax/categories and /ajax/search ... calibre server listening on 127.0.0.1:34475 +ok [0.5 s] +test_srv_add_book (calibre.srv.tests.ajax.ContentTest.test_srv_add_book) ... calibre server listening on 127.0.0.1:39115 +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:34171 -ok [0.3 s] +Test that virtual lib. + search restriction works on all end points ... calibre server listening on 127.0.0.1:32873 +ok [0.5 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:39319 -ok [0.1 s] +Test parsing of Accept-Language ... calibre server listening on 127.0.0.1:42633 +ok [0.3 s] test_header_parsing (calibre.srv.tests.http.TestHTTP.test_header_parsing) Test parsing of HTTP headers ... ok [0.0 s] test_http_basic (calibre.srv.tests.http.TestHTTP.test_http_basic) -Test basic HTTP protocol conformance ... calibre server listening on 127.0.0.1:44017 -Unhandled exception in state: State: _job_done Client: 127.0.0.1:53248 Request: GET /test/ HTTP/1.1 +Test basic HTTP protocol conformance ... calibre server listening on 127.0.0.1:36287 +Unhandled exception in state: State: _job_done Client: 127.0.0.1:52358 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) @@ -5658,43 +67603,315 @@ ~^~ ZeroDivisionError: division by zero +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, 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.2 s] test_http_response (calibre.srv.tests.http.TestHTTP.test_http_response) -Test HTTP protocol responses ... calibre server listening on 127.0.0.1:36823 -ok [0.2 s] +Test HTTP protocol responses ... calibre server listening on 127.0.0.1:38565 +ok [0.4 s] test_range_parsing (calibre.srv.tests.http.TestHTTP.test_range_parsing) Test parsing of Range header ... ok [0.0 s] test_static_generation (calibre.srv.tests.http.TestHTTP.test_static_generation) -Test static generation ... calibre server listening on 127.0.0.1:37081 -ok [0.0 s] +Test static generation ... calibre server listening on 127.0.0.1:40153 +ok [0.1 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 [::]:43645 +test_dual_stack (calibre.srv.tests.loop.LoopTest.test_dual_stack) ... calibre server listening on [::]:38969 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:36579 +calibre server listening on 127.0.1.1:35047 ok [0.9 s] test_jobs_manager (calibre.srv.tests.loop.LoopTest.test_jobs_manager) -Test the jobs manager ... ok [1.2 s] +Test the jobs manager ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, 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.4 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:44403 +Test plugin semantics ... calibre server listening on 127.0.0.1:36891 ok [0.0 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:41803 +Test socket activation ... calibre server listening on 127.0.0.1:37515 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:45603 -ok [0.2 s] +Test serving over SSL ... calibre server listening on 127.0.0.1:41575 +ok [0.9 s] test_workers (calibre.srv.tests.loop.LoopTest.test_workers) -Test worker semantics ... calibre server listening on 127.0.0.1:36761 -calibre server listening on 127.0.0.1:45751 +Test worker semantics ... calibre server listening on 127.0.0.1:36753 +calibre server listening on 127.0.0.1:34825 Failed to shutdown 1 workers in ThreadPool cleanly ServerWorker failed to notify server on job completion Traceback (most recent call last): @@ -5710,31 +67927,48 @@ ValueError: write to closed file 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.4 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.1 s] +test_certgen (calibre.test_build.BuildTest.test_certgen) ... ok [0.3 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.3 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.3 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) ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 580, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/cache.py", line 553, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 1126, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/db/backend.py", line 433, 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.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_markdown (calibre.test_build.BuildTest.test_markdown) ... ok [0.1 s] test_msgpack (calibre.test_build.BuildTest.test_msgpack) ... ok [0.1 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_piper (calibre.test_build.BuildTest.test_piper) ... ok [0.2 s] test_plugins (calibre.test_build.BuildTest.test_plugins) ... ok [0.0 s] test_podofo (calibre.test_build.BuildTest.test_podofo) ... ok [0.0 s] test_psutil (calibre.test_build.BuildTest.test_psutil) ... ok [0.0 s] @@ -5748,240 +67982,48 @@ 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.5 s] - -Slowest tests: calibre.srv.tests.http.TestHTTP.test_http_basic [60.2 s] calibre.db.tests.writing.WritingTest.test_backup [2.4 s] calibre.db.tests.fts_api.FTSAPITest.test_fts_search [2.3 s] - ----------------------------------------------------------------------- -Ran 342 tests in 106.716s - -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 -::group::test - -* -* Running test -* - -test_ajax_book (calibre.srv.tests.ajax.ContentTest.test_ajax_book) -Test /ajax/book ... calibre server listening on 127.0.0.1:45333 -ok [0.2 s] +test_forked_map (calibre.utils.forked_map.find_tests..TestForkedMap.test_forked_map) ... ok [1.3 s] +====================================================================== +FAIL: test_websocket_basic (calibre.srv.tests.web_sockets.WebSocketTest.test_websocket_basic) +Test basic interaction with the websocket server ---------------------------------------------------------------------- -Ran 1 test in 0.217s - -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 -::group::test - -* -* Running test -* - -test_qt (calibre.test_build.BuildTest.test_qt) ... qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version 7.1.1-1+b8 GPL version 2 or later -qt.multimedia.ffmpeg: Available HW decoding frameworks: -qt.multimedia.ffmpeg: Available HW encoding frameworks: -PulseAudioService: pa_context_connect() failed -QRhiGles2: Failed to create temporary context -QRhiGles2: Failed to create context -This plugin does not support createPlatformVulkanInstance -QVulkanInstance: Failed to initialize Vulkan -Unable to detect GPU vendor. -WebEngineContext is used before QtWebEngineQuick::initialize() or OpenGL context creation failed. -qt.webenginecontext: - Chromium GL Backend: disabled - Chromium ANGLE Backend: disabled - Chromium Vulkan Backend: disabled - - QSG RHI Backend: OpenGL - QSG RHI Backend Supported: yes - GPU Vendor: Unknown - - Using GLX: no - Using EGL: no - Using Shared GL: yes - Using Software Dynamic GL: no - Surface Type: DefaultRenderableType - Surface Profile: NoProfile - Surface Version: 2.0 - - Init Parameters: - * application-name setup.py - * browser-subprocess-path /usr/lib/qt6/libexec/QtWebEngineProcess - * disable-blink-features WebOTP - * disable-features InstalledApp,EyeDropper,BackgroundFetch,WebOTP,WebPayments,WebUSB - * disable-gpu - * disable-setuid-sandbox - * disable-speech-api - * enable-features NetworkServiceInProcess2,TracingServiceInProcess - * in-process-gpu - * use-gl disabled - -ok [3.1 s] +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/srv/tests/web_sockets.py", line 288, in test_websocket_basic + isf_test(frags, close_code=INCONSISTENT_DATA, send_close=False, ignore_send_failures=True) + ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.10.0+ds/src/calibre/srv/tests/web_sockets.py", line 225, in simple_test + self.assertGreaterEqual(len(control_frames), 1) + ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: 0 not greater than or equal to 1 ---------------------------------------------------------------------- -Ran 1 test in 3.051s +Ran 343 tests in 152.570s -OK +FAILED (failures=1, skipped=10) +make[3]: *** [debian/rules:65: calibre_auto_test] Error 1 make[3]: Leaving directory '/build/reproducible-path/calibre-8.10.0+ds' -make[2]: 'test' is up to date. +make[2]: *** [debian/calibre-builder.mak:11: test] Error 2 make[2]: Leaving directory '/build/reproducible-path/calibre-8.10.0+ds' +dh_auto_test: error: make -j12 test -f debian/calibre-builder.mak test returned exit code 2 +make[1]: *** [debian/rules:62: override_dh_auto_test] Error 25 make[1]: Leaving directory '/build/reproducible-path/calibre-8.10.0+ds' - create-stamp debian/debhelper-build-stamp - dh_testroot -O--buildsystem=makefile - dh_prep -O--buildsystem=makefile - debian/rules override_dh_auto_install -make[1]: Entering directory '/build/reproducible-path/calibre-8.10.0+ds' -dh_auto_install -O--buildsystem=makefile -- -f debian/calibre-builder.mak install - make -j12 install DESTDIR=/build/reproducible-path/calibre-8.10.0\+ds/debian/tmp AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true" -f debian/calibre-builder.mak install -make[2]: Entering directory '/build/reproducible-path/calibre-8.10.0+ds' -make MAKEFLAGS= -f debian/rules calibre_auto_install -make[3]: Entering directory '/build/reproducible-path/calibre-8.10.0+ds' -mkdir -p debian/tmp/usr/share/icons/hicolor -mkdir -p debian/tmp/usr/share/applications -mkdir -p debian/tmp/usr/share/mime/packages -mkdir -p debian/tmp/usr/share/zsh/vendor-completions -env XDG_DATA_DIRS=/build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/share CALIBRE_CONFIG_DIRECTORY=debian/tmp/config python3.13 setup.py install --root=debian/tmp/usr - -* -* Running build -* - -Building 30 extensions - -####### Building headless QPA plugin ####### -* build took 0.1 seconds - -* -* Running gui -* - -* gui took 0.0 seconds - -* -* Running install -* - -INSTALL paths: - LIB: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/lib/calibre - SHARE: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/share/calibre -Installing code to /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/lib/calibre -Installing resources to /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/share/calibre -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/ebook-device -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/ebook-meta -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/ebook-convert -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/ebook-polish -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/markdown-calibre -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/web2disk -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/calibre-server -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/lrf2lrs -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/lrs2lrf -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/calibre-debug -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/calibredb -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/calibre-parallel -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/calibre-customize -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/calibre-complete -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/fetch-ebook-metadata -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/calibre-smtp -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/calibre -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/lrfviewer -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/ebook-viewer -Installing binary: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/bin/ebook-edit -Installing calibre environment module: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/lib/python3.13/site-packages/init_calibre.py -Setting up command-line completion... -Installing zsh completion to: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/share/zsh/vendor-completions/_calibre -Installing bash completion to: /build/reproducible-path/calibre-8.10.0+ds/debian/tmp/usr/share/bash-completion/completions/ -Setting up desktop integration... - - -calibre successfully installed. You can start it by running the command calibre -* install took 4.5 seconds -rm debian/tmp/usr/share/calibre/calibre-portable.* -rm debian/tmp/usr/lib/python*/site-packages/init_calibre.py -rmdir debian/tmp/usr/share/desktop-directories -rm debian/tmp/usr/lib/calibre/calibre/devices/mtp/unix/upstream/update.py -rmdir debian/tmp/usr/lib/calibre/calibre/devices/mtp/unix/upstream/ -rm debian/tmp/usr/lib/calibre/tinycss/tests/*.py -rmdir debian/tmp/usr/lib/calibre/tinycss/tests/ -find debian/tmp/usr/lib/calibre/calibre/gui2 -name '*_ui.py' -print | xargs --no-run-if-empty sed --separate --file=debian/remove-ui-basepath.sed --in-place -make[3]: Leaving directory '/build/reproducible-path/calibre-8.10.0+ds' -make[2]: 'install' is up to date. -make[2]: Leaving directory '/build/reproducible-path/calibre-8.10.0+ds' -make[1]: Leaving directory '/build/reproducible-path/calibre-8.10.0+ds' - dh_install -O--buildsystem=makefile - dh_installdocs -O--buildsystem=makefile - dh_installchangelogs -O--buildsystem=makefile - debian/rules override_dh_installman -make[1]: Entering directory '/build/reproducible-path/calibre-8.10.0+ds' -debian/install-manpages.sh -make[1]: Leaving directory '/build/reproducible-path/calibre-8.10.0+ds' - debian/rules override_dh_python3 -make[1]: Entering directory '/build/reproducible-path/calibre-8.10.0+ds' -dh_python3 --no-package=calibre-bin --shebang=/usr/bin/python3.13 -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/lib/calibre/calibre/devices/cli.py -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-edit -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-viewer -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/lrfviewer -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-smtp -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/fetch-ebook-metadata -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-complete -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-customize -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-parallel -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibredb -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-debug -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/lrs2lrf -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/lrf2lrs -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-server -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/web2disk -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/markdown-calibre -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-polish -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-convert -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-meta -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-device -make[1]: Leaving directory '/build/reproducible-path/calibre-8.10.0+ds' - dh_installsystemduser -O--buildsystem=makefile - dh_lintian -O--buildsystem=makefile - dh_icons -O--buildsystem=makefile - dh_perl -O--buildsystem=makefile - dh_link -O--buildsystem=makefile - dh_strip_nondeterminism -O--buildsystem=makefile - dh_compress -O--buildsystem=makefile - dh_fixperms -O--buildsystem=makefile - dh_missing -O--buildsystem=makefile - dh_dwz -a -O--buildsystem=makefile - dh_strip -a -O--buildsystem=makefile - dh_makeshlibs -a -O--buildsystem=makefile - dh_shlibdeps -a -O--buildsystem=makefile -dpkg-shlibdeps: warning: diversions involved - output may be incorrect - diversion by libc6 from: /lib/ld-linux-aarch64.so.1 -dpkg-shlibdeps: warning: diversions involved - output may be incorrect - diversion by libc6 to: /lib/ld-linux-aarch64.so.1.usr-is-merged - dh_installdeb -O--buildsystem=makefile - debian/rules override_dh_gencontrol -make[1]: Entering directory '/build/reproducible-path/calibre-8.10.0+ds' -dh_gencontrol -- -Vpyqt:Version=6.9.0-2 -make[1]: Leaving directory '/build/reproducible-path/calibre-8.10.0+ds' - dh_md5sums -O--buildsystem=makefile - dh_builddeb -O--buildsystem=makefile -dpkg-deb: building package 'calibre-bin' in '../calibre-bin_8.10.0+ds-3_arm64.deb'. -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-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) - dpkg-source --after-build . -dpkg-buildpackage: info: binary-only upload (no source included) -dpkg-genchanges: info: not including original source code in upload +make: *** [debian/rules:39: binary] Error 2 +dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 I: copying local configuration +E: Failed autobuilding of package +I: user script /srv/workspace/pbuilder/3018003/tmp/hooks/C01_cleanup starting +debug output: disk usage on i-capture-the-hostname at Sat Oct 10 06:55:40 UTC 2026 +Filesystem Size Used Avail Use% Mounted on +tmpfs 16G 0 16G 0% /dev/shm + +I: user script /srv/workspace/pbuilder/3018003/tmp/hooks/C01_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/1474696 and its subdirectories -I: Current time: Sat Sep 6 12:25:48 -12 2025 -I: pbuilder-time-stamp: 1757204748 +I: removing directory /srv/workspace/pbuilder/3018003 and its subdirectories