View Issue Details

IDProjectCategoryView StatusLast Update
0011593Talermerchant backendpublic2026-07-01 17:06
Reportersebasjm Assigned Toavalos  
PriorityurgentSeveritymajorReproducibilityalways
Status assignedResolutionopen 
Target Version1.6 
Summary0011593: prepared statement "select_wirewatch_progress" does not exist
Description$ taler-merchant-wirewatch --version
taler-merchant-wirewatch v1.6.8-3-g5c36bb8c


INFO Running prepared statement `select_wirewatch_progress' on 0x650b1178d290
DEBUG Executing prepared SQL statement `select_wirewatch_progress'
DEBUG Execution of prepared SQL statement `select_wirewatch_progress' finished (PGRES_FATAL_ERROR)
ERROR Query `select_wirewatch_progress' failed with result: prepared statement "select_wirewatch_progress" does not exist/(null)/ERROR: prepared statement "select_wirewatch_progress" does not exist
/PGRES_FATAL_ERROR/ERROR: prepared statement "select_wirewatch_progress" does not exist
ERROR Failed to obtain wirewatch accounts from database
DEBUG GNUNET_SCHEDULER_shutdown
DEBUG canceling task 0x650b1178fac0


$ grep -R -l select_wirewatch_progress install-prefix/
install-prefix/lib/libtalermerchantdb.so
install-prefix/lib/libtalermerchantdb.so.2
TagsNo tags attached.

Activities

sebasjm

2026-07-01 15:17

developer   ~0029041

$ taler-merchant-wirewatch -p -c runtime/merchant-default.conf
2026-07-01T10:16:50.520430-0300 pq-804933 ERROR Query `select_wirewatch_progress' failed with result: prepared statement "select_wirewatch_progress" does not exist/(null)/ERROR: prepared statement "select_wirewatch_progress" does not exist
/PGRES_FATAL_ERROR/ERROR: prepared statement "select_wirewatch_progress" does not exist

2026-07-01T10:16:50.520470-0300 taler-merchant-wirewatch-804933 ERROR Failed to obtain wirewatch accounts from database

sebasjm

2026-07-01 15:22

developer   ~0029042

Down the rabbit hole I go

$ git show --summary
commit 5c36bb8c8e17f7c1d5c269bd6ed0625317939b4d (HEAD -> master, origin/master, origin/HEAD)
Author: Christian Grothoff <christian@grothoff.org>
Date: Tue Jun 30 00:38:25 2026 +0200

    fix i/j confusion

$ ./build/src/backend/taler-merchant-wirewatch --version
./build/src/backend/taler-merchant-wirewatch v1.6.8-3-g5c36bb8c

The version reported is the latest on master, --version seems broken

sebasjm

2026-07-01 15:24

developer   ~0029043

ahh is just a letter, that G is also found in

$ taler-exchange-httpd --version
taler-exchange-httpd v1.6.5-81-g8161623b6

sebasjm

2026-07-01 15:51

developer   ~0029044

Last edited: 2026-07-01 15:51

$ time taler-merchant-wirewatch -p -c runtime/merchant-default.conf -L DEBUG -l wire.log

real 0m8.843s
user 0m0.011s
sys 0m0.012s

$ grep select_wirewatch_progress wire.log

2026-07-01T10:47:54.613119-0300 pq-816935 INFO Preparing SQL statement `SELECT out_last_bank_serial ,out_merchant_id ,out_payto_uri ,out_credit_facade_url ,out_credit_facade_credentials::TEXT FROM merchant.select_wirewatch_accounts()' as `select_wirewatch_progress'
2026-07-01T10:47:54.613195-0300 taler-merchant-wirewatch-816935 INFO Running prepared statement `select_wirewatch_progress' on 0x63b68622a770
2026-07-01T10:47:54.613197-0300 pq-816935 DEBUG Executing prepared SQL statement `select_wirewatch_progress'
2026-07-01T10:47:54.613933-0300 pq-816935 DEBUG Execution of prepared SQL statement `select_wirewatch_progress' finished (PGRES_TUPLES_OK)
2026-07-01T10:48:03.437193-0300 taler-merchant-wirewatch-816935 INFO Running prepared statement `select_wirewatch_progress' on 0x63b68622aad0
2026-07-01T10:48:03.437199-0300 pq-816935 DEBUG Executing prepared SQL statement `select_wirewatch_progress'
2026-07-01T10:48:03.437253-0300 pq-816935 DEBUG Execution of prepared SQL statement `select_wirewatch_progress' finished (PGRES_FATAL_ERROR)
2026-07-01T10:48:03.437275-0300 pq-816935 ERROR Query `select_wirewatch_progress' failed with result: prepared statement "select_wirewatch_progress" does not exist/(null)/ERROR: prepared statement "select_wirewatch_progress" does not exist
/PGRES_FATAL_ERROR/ERROR: prepared statement "select_wirewatch_progress" does not exist

Christian Grothoff

2026-07-01 16:12

manager   ~0029045

This is very strange. I can only imagine a single scenario, which is where the psql connection broke, we did NOT notice it, and then the prepared statement would be forgotten. But I quite specifically tried to fix that logic in a recent major refactor.

Could you please do two things:
1) Upgrade to the latest GNUnet and exchange libraries, and
2) include the *full* log (of the wirewatch process) as an attachment (maybe gzip first)?

Christian Grothoff

2026-07-01 16:39

manager   ~0029046

Asked Sebastian to confirm, same fix should be applied to other DBs.

sebasjm

2026-07-01 16:51

developer   ~0029047

It doesnt crash anymore. Although it looks strange that for only 1 logged in user keeps re{starting,initializing}

2026-07-01T11:47:35.241639-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f34a0
2026-07-01T11:47:35.363358-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f3050
2026-07-01T11:47:41.191643-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f25e0
2026-07-01T11:47:41.925508-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f27b0
2026-07-01T11:47:50.337030-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f24d0
2026-07-01T11:47:50.366769-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f34a0
2026-07-01T11:48:05.337870-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f3050
2026-07-01T11:48:05.369831-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f25e0
2026-07-01T11:48:05.378337-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f27b0
2026-07-01T11:48:20.350505-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f24d0
2026-07-01T11:48:20.372495-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f34a0
2026-07-01T11:48:20.381525-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f3050
2026-07-01T11:48:20.398171-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f25e0
2026-07-01T11:48:35.377842-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f27b0
2026-07-01T11:48:35.387033-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f24d0
2026-07-01T11:48:35.400066-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f34a0
2026-07-01T11:48:50.398372-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f3050
2026-07-01T11:48:50.411222-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f25e0
2026-07-01T11:49:05.421884-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f27b0
2026-07-01T11:49:05.430959-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f24d0
2026-07-01T11:49:20.448580-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f34a0
2026-07-01T11:49:20.461542-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f3050
2026-07-01T11:49:35.474498-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f25e0
2026-07-01T11:49:35.483107-0300 taler-merchant-wirewatch-893484 INFO Running prepared statement `select_wirewatch_accounts' on 0x5b98e57f27b0
 

I found that it does for every request to /private/kyc and any open session will be long polling into that endpoint

Christian Grothoff

2026-07-01 17:06

manager   ~0029049

This still needs to be fixed in sync/, which Ivan asked me not to touch. So he should now fix it. Completely equivalent to the changes in challenger, anastasis, merchant, donau and exchange today. Just make 'prep_gen' a global (but rename).

Issue History

Date Modified Username Field Change
2026-07-01 15:02 sebasjm New Issue
2026-07-01 15:17 sebasjm Note Added: 0029041
2026-07-01 15:22 sebasjm Note Added: 0029042
2026-07-01 15:24 sebasjm Note Added: 0029043
2026-07-01 15:51 sebasjm Note Added: 0029044
2026-07-01 15:51 sebasjm Note Edited: 0029044
2026-07-01 16:12 Christian Grothoff Note Added: 0029045
2026-07-01 16:12 Christian Grothoff Assigned To => Christian Grothoff
2026-07-01 16:12 Christian Grothoff Status new => assigned
2026-07-01 16:12 Christian Grothoff Assigned To Christian Grothoff => sebasjm
2026-07-01 16:12 Christian Grothoff Status assigned => feedback
2026-07-01 16:38 Christian Grothoff Status feedback => assigned
2026-07-01 16:38 Christian Grothoff Assigned To sebasjm => Christian Grothoff
2026-07-01 16:39 Christian Grothoff Note Added: 0029046
2026-07-01 16:51 sebasjm Note Added: 0029047
2026-07-01 16:52 sebasjm Status assigned => resolved
2026-07-01 16:52 sebasjm Resolution open => fixed
2026-07-01 17:05 Christian Grothoff Assigned To Christian Grothoff => avalos
2026-07-01 17:06 Christian Grothoff Note Added: 0029049
2026-07-01 17:06 Christian Grothoff Status resolved => assigned
2026-07-01 17:06 Christian Grothoff Resolution fixed => open