sqlite3.OperationalError: near "%": syntax error when starting tikka 0.14.2

$ pipx upgrade tikka
upgraded package tikka from 0.14.1 to 0.14.2 (location: /home/hugo/.local/share/pipx/venvs/tikka)
$ tikka
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Traceback (most recent call last):
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/slots/pyqt/entities/worker.py", line 43, in run
    self.call()
    ~~~~~~~~~^^
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/slots/pyqt/windows/main.py", line 1110, in connect_to_indexer
    self.application.indexers.set_current_url_randomly()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/domains/indexers.py", line 169, in set_current_url_randomly
    url = self.list()[index].url
          ~~~~~~~~~^^
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/domains/indexers.py", line 217, in list
    return self.repository.list()
           ~~~~~~~~~~~~~~~~~~~~^^
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/adapters/repository/indexers.py", line 78, in list
    result_set = self.client.select(sql, args)
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/adapters/repository/file_db_client.py", line 145, in select
    return self.execute(request, args)
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/adapters/repository/file_db_client.py", line 102, in execute
    raise exception
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/adapters/repository/file_db_client.py", line 96, in execute
    cursor.execute(request, args)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
sqlite3.OperationalError: near "%": syntax error
zsh: IOT instruction (core dumped)  tikka

$ sqlite3 --version
3.49.1 2025-02-18 13:38:58 873d4e274b4988d260ba8354a9718324a1c26187a4ab4c1cc0227c03d0f1alt1 (64-bit)

Et aussi

Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
ERROR:root:[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'gdev.coinduf.eu'. (_ssl.c:1028)
Traceback (most recent call last):
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/adapters/network/node/connection.py", line 48, in connect
    self.client = SubstrateClient(
                  ~~~~~~~~~~~~~~~^
        url=server.url,
        ^^^^^^^^^^^^^^^
    ...<4 lines>...
        metadata_dir=str(Path(DATA_PATH).expanduser()),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/adapters/network/node/substrate_client.py", line 89, in __init__
    connection: WebSocket = create_connection(
                            ~~~~~~~~~~~~~~~~~^
        self.url, **self.websocket_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/websocket/_core.py", line 646, in create_connection
    websock.connect(url, **options)
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/websocket/_core.py", line 256, in connect
    self.sock, addrs = connect(
                       ~~~~~~~^
        url, self.sock_opt, proxy_info(**options), options.pop("socket", None)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/websocket/_http.py", line 151, in connect
    sock = _ssl_socket(sock, options.sslopt, hostname)
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/websocket/_http.py", line 311, in _ssl_socket
    sock = _wrap_sni_socket(sock, sslopt, hostname, check_hostname)
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/websocket/_http.py", line 281, in _wrap_sni_socket
    return context.wrap_socket(
           ~~~~~~~~~~~~~~~~~~~^
        sock,
        ^^^^^
    ...<2 lines>...
        server_hostname=hostname,
        ^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/python3.13/ssl.py", line 455, in wrap_socket
    return self.sslsocket_class._create(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        sock=sock,
        ^^^^^^^^^^
    ...<5 lines>...
        session=session
        ^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/python3.13/ssl.py", line 1076, in _create
    self.do_handshake()
    ~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3.13/ssl.py", line 1372, in do_handshake
    self._sslobj.do_handshake()
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'gdev.coinduf.eu'. (_ssl.c:1028)
Traceback (most recent call last):
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/slots/pyqt/entities/worker.py", line 43, in run
    self.call()
    ~~~~~~~~~^^
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/slots/pyqt/windows/main.py", line 1110, in connect_to_indexer
    self.application.indexers.set_current_url_randomly()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/domains/indexers.py", line 169, in set_current_url_randomly
    url = self.list()[index].url
          ~~~~~~~~~^^
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/domains/indexers.py", line 217, in list
    return self.repository.list()
           ~~~~~~~~~~~~~~~~~~~~^^
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/adapters/repository/indexers.py", line 78, in list
    result_set = self.client.select(sql, args)
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/adapters/repository/file_db_client.py", line 145, in select
    return self.execute(request, args)
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/adapters/repository/file_db_client.py", line 102, in execute
    raise exception
  File "/home/hugo/.local/share/pipx/venvs/tikka/lib/python3.13/site-packages/tikka/adapters/repository/file_db_client.py", line 96, in execute
    cursor.execute(request, args)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
sqlite3.OperationalError: near "%": syntax error
zsh: IOT instruction (core dumped)  tikka

Similaire Ă  Crash de tikka au lancement (0.14.2)

Ce bug, je le connais bien et j’avais corrigé les endroits du code où il survenait chez moi. Comme visiblement il dépend aussi du contexte d’installation, je vais le corriger partout !

Pour l’erreur de vérification de certificat SSL sur une connexion, cela ne devrait pas entraîner de crash, mais juste ne pas connecter au serveur. Si tu as mis “connexion aléatoire au lancement”, alors Tikka bascule sur un autre serveur jusqu’à obtenir une connexion.

Est-ce que l’erreur SSL fait crasher l’application ou bien affiche juste l’exception dans les logs ?

1 Like

Comme tout arrive en même temps (crash au lancement) ce n’est pas facile à dire, mais je dirais que c’est juste la syntax error sql qui fait crasher.

1 Like

Oui donc c’est logique. Je viens de corriger le bug sql. Je release ce matin un correctif.

Pour le bug de connection sur un certificat, je suppose, auto-signé, par contre c’est la galère !
Je fais un ticket sur gitlab pour investiguer, car cela peut être une version de OpenSSL ou autre chose, d’après stack overflow.
[EDIT]

Bug SQL corrigé dans la version 0.14.3.

1 Like

Ce n’est pas un bug, c’était vraiment le mauvais certificat. Donc heureusement qu’il y a une erreur !! (pour plus d’infos cf Résurrection de mon infra autohébergée *.coinduf.eu)

1 Like