taler
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Taler] Nexus fails with transaction over 0.000001 units


From: Florian Jung
Subject: [Taler] Nexus fails with transaction over 0.000001 units
Date: Mon, 26 Dec 2022 22:59:24 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0

Hi,

when I create a transaction over 0.000001 units, the nexus fails to pick up the transaction via ebics. Instead, it throws EBICS_PROCESSING_ERROR. (Full stack trace below; my libeufin version is ~1-2 weeks old, you can find it at https://github.com/Windfisch/libeufin)

This locks the nexus up until I manually delete this transaction from the database.


This could actually be a very critical bug, since the exchange cannot do anything against someone wiring such an amount to the exchange's account, resulting in a Denial-of-Service.


Could you please provide me insight why this happens and how I can work around this for now?

Thanks/Cheers!

Florian



---snip---


libeufin_nexus_1    | 21:50:31.415 [DefaultDispatcher-worker-2] ERROR tech.libeufin.nexus - Exception during task TaskSchedule(taskId=2, name=fetch-reports-each-second, type=fetch, resourceType=bank-account, resourceId=nickname, params=
{
libeufin_nexus_1    |   "rangeType" : "latest",
libeufin_nexus_1    |   "level" : "report"
libeufin_nexus_1    | })
libeufin_nexus_1    | tech.libeufin.util.EbicsProtocolError: unexpected return code EBICS_PROCESSING_ERROR libeufin_nexus_1    |   at tech.libeufin.nexus.ebics.EbicsClientKt.doEbicsDownloadTransaction(EbicsClient.kt:102) libeufin_nexus_1    |   at tech.libeufin.nexus.ebics.EbicsClientKt$doEbicsDownloadTransaction$1.invokeSuspend(EbicsClient.kt) libeufin_nexus_1    |   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:15) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:93) libeufin_nexus_1    |   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:15) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:93) libeufin_nexus_1    |   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:15) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:93) libeufin_nexus_1    |   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:15) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:93) libeufin_nexus_1    |   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:15) libeufin_nexus_1    |   at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:93) libeufin_nexus_1    |   at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) libeufin_nexus_1    |   at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) libeufin_nexus_1    |   at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571) libeufin_nexus_1    |   at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) libeufin_nexus_1    |   at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678) libeufin_nexus_1    |   at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]