View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0011593 | Taler | merchant backend | public | 2026-07-01 15:02 | 2026-07-01 17:06 |
| Reporter | sebasjm | Assigned To | avalos | ||
| Priority | urgent | Severity | major | Reproducibility | always |
| Status | assigned | Resolution | open | ||
| Target Version | 1.6 | ||||
| Summary | 0011593: 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 | ||||
| Tags | No tags attached. | ||||
|
|
$ 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 |
|
|
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 |
|
|
ahh is just a letter, that G is also found in $ taler-exchange-httpd --version taler-exchange-httpd v1.6.5-81-g8161623b6 |
|
|
$ 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 |
|
|
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)? |
|
|
Asked Sebastian to confirm, same fix should be applied to other DBs. |
|
|
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 |
|
|
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). |
| 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 |