Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LS 2.3.1 - Command failed (READONLY): attempt to write a readonly database. #4292

Open
RM-FM opened this issue Dec 31, 2024 · 3 comments
Open
Labels

Comments

@RM-FM
Copy link
Contributor

RM-FM commented Dec 31, 2024

Description

Hi Romain,

every now and then I can see below error in my logs. It seems to be related to the caching of Azuracast autocue data. Usually it happens aver the station is up for 1-2 weeks only. During the first days no such errors are occuring. But once it starts, they appear quite frequently.

2024/12/14 05:36:32 [autocue:2] Error while processing autocue: error(kind="sqlite",message="Command failed (READONLY): attempt to write a readonly database. Statement: INSERT INTO cache (key, value) VALUES (?, ?).",positions="at /usr/share/liquidsoap/libs/autocue.liq, line 964 char 4 - line 1047 char 7, at /usr/share/liquidsoap/libs/autocue.liq, line 974, char 25-80, at /usr/share/liquidsoap/libs/autocue.liq, line 828 char 2 - line 949 char 5, at /usr/share/liquidsoap/libs/autocue.liq, line 840 char 6 - line 857 char 9")

Steps to reproduce

Run latest Azuracast Rolling Release with autocue enabled or use the Azuracast cache script running a native LS instance.

https://github.com/AzuraCast/AzuraCast/blob/main/util/docker/stations/liquidsoap/azuracast.liq
https://github.com/AzuraCast/AzuraCast/blob/main/util/docker/stations/liquidsoap/cache.liq

Expected behavior

No error message while trying to insert a new cache record to the database

Liquidsoap version

Liquidsoap 2.3.1+git@6e56d1362
Copyright (c) 2003-2024 Savonet team
Liquidsoap is open-source software, released under GNU General Public License.
See <http://liquidsoap.info> for more information.

Liquidsoap build config

* Liquidsoap version  : 2.3.1+git@6e56d1362

 * Compilation options
   - Release build       : false
   - Git SHA             : 6e56d1362
   - OCaml version       : 4.14.2
   - OS type             : Unix
   - Libs versions       : alsa=0.3.0 angstrom=0.16.1 ao=0.2.4 asetmap=0.8.1 asn1-combinators=0.3.2 astring=0.8.5 base=v0.16.3 base.base_internalhash_types=v0.16.3 base.caml=v0.16.3 base.shadow_stdlib=v0.16.3 base64=3.5.1 bigarray=[distributed with Ocaml] bigarray-compat=1.1.0 bigstringaf=0.10.0 bjack=0.1.6 bos=0.2.1 bytes=[distributed with OCaml 4.02 or above] ca-certs=v1.0.0 camlp-streams camomile.lib=2.0 cohttp=5.3.1 cohttp-lwt=5.3.0 cohttp-lwt-unix=5.3.0 conduit=7.1.0 conduit-lwt=7.1.0 conduit-lwt-unix=7.1.0 cry=1.0.3 cstruct=6.2.0 ctypes=0.23.0 ctypes-foreign=0.23.0 ctypes.stubs=0.23.0 curl=0.9.2 digestif.c=1.2.0 domain-name=0.4.0 domain_shims dssi=0.1.5 dtools=0.4.5 dune-build-info=3.16.1 dune-private-libs.dune-section=3.16.1 dune-site=3.16.1 dune-site.private=3.16.1 duppy=0.9.4 eqaf=0.10 faad=0.5.2 fdkaac=0.3.3 ffmpeg-av=1.2.1 ffmpeg-avcodec=1.2.1 ffmpeg-avdevice=1.2.1 ffmpeg-avfilter=1.2.1 ffmpeg-avutil=1.2.1 ffmpeg-swresample=1.2.1 ffmpeg-swscale=1.2.1 fileutils=0.6.4 flac=0.5.1 flac.decoder=0.5.1 flac.ogg=0.5.1 fmt=0.9.0 fpath=0.7.3 frei0r=0.1.2 gd=1.1 gen=1.1 gmap=0.3.0 inotify=v2.6 integers ipaddr=5.6.0 ipaddr-sexp=5.6.0 ipaddr.unix=5.6.0 irc-client irc-client-unix kdf.hkdf=1.0.0 kdf.pbkdf=1.0.0 ladspa=0.2.2 lame=0.3.7 lastfm=0.3.4 lilv=0.2.0 liquidsoap-lang=2.3.1 liquidsoap-lang.console=2.3.1 liquidsoap_alsa=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_ao=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_bjack=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_builtins=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_core=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_dssi=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_faad=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_fdkaac=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_ffmpeg=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_flac=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_frei0r=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_gd=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_irc=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_ladspa=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_lame=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_lastfm=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_lilv=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_lo=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_mad=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_ndi=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_ogg=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_ogg_flac=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_optionals=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_opus=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_osc=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_oss=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_portaudio=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_posix_time=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_prometheus=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_pulseaudio=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_runtime=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_samplerate=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_sdl=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_sdl_log_level=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_shine=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_soundtouch=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_speex=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_sqlite=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_srt=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_ssl=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_stereotool=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_theora=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_tls=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_vorbis=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_xmlplaylist=rolling-release-v2.3.x-33-g6e56d13 liquidsoap_yaml=rolling-release-v2.3.x-33-g6e56d13 lo=0.2.0 logs=0.7.0 logs.fmt=0.7.0 logs.lwt=0.7.0 lwt lwt.unix macaddr=5.6.0 mad=0.5.3 magic-mime=1.3.1 mem_usage=0.1.1 memtrace=0.2.3 menhirLib=20240715 metadata=0.3.0 mirage-crypto=1.1.0 mirage-crypto-ec=1.1.0 mirage-crypto-pk=1.1.0 mirage-crypto-rng=1.1.0 mirage-crypto-rng.unix=1.1.0 mm=0.8.6 mm.audio=0.8.6 mm.base=0.8.6 mm.image=0.8.6 mm.midi=0.8.6 mm.video=0.8.6 ndi=rolling-release-v2.3.x-33-g6e56d13 ocplib-endian ocplib-endian.bigstring ogg=0.7.4 ogg.decoder=0.7.4 ohex opus=0.2.3 opus.decoder=0.2.3 osc osc-unix portaudio=0.2.3 posix-base=5a7f328 posix-socket=5a7f328 posix-socket.constants=5a7f328 posix-socket.stubs=5a7f328 posix-socket.types=5a7f328 posix-time2=5a7f328 posix-time2.constants=5a7f328 posix-time2.stubs=5a7f328 posix-time2.types=5a7f328 posix-types=5a7f328 posix-types.constants=5a7f328 ppx_compare.runtime-lib=v0.16.0 ppx_hash.runtime-lib=v0.16.0 ppx_sexp_conv.runtime-lib=v0.16.0 prometheus=1.2 prometheus-app=1.2 ptime=1.2.0 ptime.clock=1.2.0 ptime.clock.os=1.2.0 pulseaudio=0.1.6 re=1.12.0 result=1.5 rresult=0.7.0 samplerate=0.1.7 saturn_lockfree=0.4.1 sedlex=3.3 seq=[distributed with OCaml 4.07 or above] sexplib0=v0.16.0 shine=0.2.3 soundtouch=0.1.9 speex=0.4.2 speex.decoder=0.4.2 sqlite3=5.2.0 srt=0.3.1 srt.constants=0.3.1 srt.stubs=0.3.1 srt.stubs.locked=0.3.1 srt.types=0.3.1 ssl=0.7.0 stdlib-shims=0.3.0 stereotool=rolling-release-v2.3.x-33-g6e56d13 str=[distributed with Ocaml] stringext=1.6.0 theora=0.4.1 theora.decoder=0.4.1 threads=[distributed with Ocaml] threads.posix=[internal] tls=1.0.2 tsdl=v1.1.0 tsdl-image=0.5 tsdl-ttf=0.6 unix=[distributed with Ocaml] unix-errno=52c6ecb unix-errno.errno_bindings=52c6ecb unix-errno.errno_types=52c6ecb unix-errno.errno_types_detected=52c6ecb unix-errno.unix=52c6ecb uri=4.4.0 uri-sexp=4.4.0 uri.services=4.4.0 vorbis=0.8.1 vorbis.decoder=0.8.1 x509=1.0.5 xmlm=1.4.0 xmlplaylist=0.1.5 yaml=3.2.0 yaml.bindings=3.2.0 yaml.bindings.types=3.2.0 yaml.c=3.2.0 yaml.ffi=3.2.0 yaml.types=3.2.0 zarith=1.14
   - architecture        : amd64
   - host                : x86_64-pc-linux-gnu
   - target              : x86_64-pc-linux-gnu
   - system              : linux
   - ocamlopt_cflags     : -O2 -fno-strict-aliasing -fwrapv -pthread -fPIC
   - native_c_compiler   : gcc -O2 -fno-strict-aliasing -fwrapv -pthread -fPIC -D_FILE_OFFSET_BITS=64
   - native_c_libraries  : -lm

 * Configured paths
   - mode              : posix
   - standard library  : /usr/share/liquidsoap/libs
   - scripted binaries : /usr/share/liquidsoap/bin
   - rundir            : /var/run/liquidsoap
   - logdir            : /var/log/liquidsoap
   - user cache        : $HOME/.cache/liquidsoap (override with $LIQ_CACHE_USER_DIR)
   - system cache      : /var/cache/liquidsoap (override with $LIQ_CACHE_SYSTEM_DIR)
   - camomile files    : /usr/share/liquidsoap/camomile

 * Supported input formats
   - MP3               : yes
   - AAC               : yes
   - Ffmpeg            : yes
   - Flac (native)     : yes
   - Flac (ogg)        : yes
   - Opus              : yes
   - Speex             : yes
   - Theora            : yes
   - Vorbis            : yes
   - WAV/AIFF          : yes (native)

 * Supported output formats
   - FDK-AAC           : yes
   - FFmpeg            : yes
   - MP3               : yes
   - MP3 (fixed-point) : yes
   - Flac (native)     : yes
   - Flac (ogg)        : yes
   - Opus              : yes
   - Speex             : yes
   - Theora            : yes
   - Vorbis            : yes
   - WAV/AIFF          : yes (native)

 * Tags
   - AAC               : yes
   - FFmpeg            : yes
   - FLAC (native)     : yes
   - Flac (ogg)        : yes
   - Native decoder    : yes
   - Vorbis            : yes

 * Input / output
   - ALSA              : yes
   - AO                : yes
   - FFmpeg            : yes
   - JACK              : yes
   - NDI               : yes
   - OSS               : yes
   - Portaudio         : yes
   - Pulseaudio        : yes
   - SRT               : yes

 * Audio manipulation
   - FFmpeg            : yes
   - LADSPA            : yes
   - Lilv              : yes
   - Samplerate        : yes
   - SoundTouch        : yes
   - StereoTool        : yes

 * Video manipulation
   - camlimages        : no (requires camlimages)
   - FFmpeg            : yes
   - frei0r            : yes
   - ImageLib          : no (requires imagelib)
   - SDL               : yes

 * MIDI manipulation
   - DSSI              : yes

 * Visualization
   - GD                : yes
   - Graphics          : no (requires graphics)
   - SDL               : yes

 * Additional libraries
   - FFmpeg filters    : yes
   - FFmpeg devices    : yes
   - inotify           : yes
   - irc               : yes
   - jemalloc          : no (requires jemalloc)
   - lastfm            : yes
   - lo                : yes
   - memtrace          : yes
   - osc               : yes
   - ssl               : yes
   - sqlite3           : yes
   - tls               : yes
   - posix-time2       : yes
   - windows service   : no (requires winsvc)
   - YAML support      : yes
   - XML playlists     : yes

 * Monitoring
   - Prometheus        : yes

Installation method

From official packages in the release artifacts

Additional Info

No response

@RM-FM RM-FM added the bug label Dec 31, 2024
@toots
Copy link
Member

toots commented Dec 31, 2024

I'm not sure that it's an error with us. It essentially says that you're trying to write to a sqlite file that you don't have write access to.

@RM-FM
Copy link
Contributor Author

RM-FM commented Jan 13, 2025

Which is a bit strange as the same (Azuracast) script works fine for days, or even weeks, before it starts to report those issues. I will open an issue in the Azuracast Git in addition - let's see whether Buster or someone else from the Azuracast Community is able to find out what's going on here...

@RM-FM
Copy link
Contributor Author

RM-FM commented Jan 13, 2025

AzuraCast/AzuraCast#7678

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants