View Issue Details

IDProjectCategoryView StatusLast Update
0011593Talersyncpublic2026-08-02 23:13
Reportersebasjm Assigned Toavalos Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PriorityurgentSeveritymajorReproducibilityalways
Status implementingResolutionopen 
Target Version1.7 
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.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

sebasjm

2026-07-01 13: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 13: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 13: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 13:51

developer   ~0029044

Last edited: 2026-07-01 13: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 14: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 14:39

manager   ~0029046

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

sebasjm

2026-07-01 14: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 15: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 ModifiedUsernameFieldChange
2026-07-01 13:02sebasjmNew Issue
2026-07-01 13:17sebasjmNote Added: 0029041
2026-07-01 13:22sebasjmNote Added: 0029042
2026-07-01 13:24sebasjmNote Added: 0029043
2026-07-01 13:51sebasjmNote Added: 0029044
2026-07-01 13:51sebasjmNote Edited: 0029044
2026-07-01 14:12Christian GrothoffNote Added: 0029045
2026-07-01 14:12Christian GrothoffAssigned To => Christian Grothoff
2026-07-01 14:12Christian GrothoffStatusnew => assigned
2026-07-01 14:12Christian GrothoffAssigned ToChristian Grothoff => sebasjm
2026-07-01 14:12Christian GrothoffStatusassigned => feedback
2026-07-01 14:38Christian GrothoffStatusfeedback => assigned
2026-07-01 14:38Christian GrothoffAssigned Tosebasjm => Christian Grothoff
2026-07-01 14:39Christian GrothoffNote Added: 0029046
2026-07-01 14:51sebasjmNote Added: 0029047
2026-07-01 14:52sebasjmStatusassigned => informing
2026-07-01 14:52sebasjmResolutionopen => fixed
2026-07-01 15:05Christian GrothoffAssigned ToChristian Grothoff => avalos
2026-07-01 15:06Christian GrothoffNote Added: 0029049
2026-07-01 15:06Christian GrothoffStatusinforming => assigned
2026-07-01 15:06Christian GrothoffResolutionfixed => open
2026-08-02 23:13Christian GrothoffCategorymerchant backend => sync
2026-08-02 23:13Christian GrothoffTarget Version1.6 => 1.7
2026-11-03 07:21Statusassigned => implementing