[global_exchange] Crash si offre achat peut être honorée mais compte vide #94

Closed
opened 2021-08-23 22:41:31 +02:00 by sys4 · 1 comment
Owner
2021-08-23 20:51:54: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'global_exchange' in callback on_playerReceiveFields(): ...stable/minetest/bin/../mods/global_exchange/exchange.lua:271: SQL error: CHECK constraint failed: Amount > 0
2021-08-23 20:51:54: ERROR[Main]: stack traceback:
2021-08-23 20:51:54: ERROR[Main]:       [C]: in function 'error'
2021-08-23 20:51:54: ERROR[Main]:       ...stable/minetest/bin/../mods/global_exchange/exchange.lua:271: in function 'sql_error'
2021-08-23 20:51:54: ERROR[Main]:       ...stable/minetest/bin/../mods/global_exchange/exchange.lua:823: in function 'put_in_inbox'
2021-08-23 20:51:54: ERROR[Main]:       ...stable/minetest/bin/../mods/global_exchange/exchange.lua:1092: in function 'sell'
2021-08-23 20:51:54: ERROR[Main]:       ...inetest/bin/../mods/global_exchange/exchange_machine.lua:387: in function 'post_sell'
2021-08-23 20:51:54: ERROR[Main]:       ...inetest/bin/../mods/global_exchange/exchange_machine.lua:475: in function 'handle_main'
2021-08-23 20:51:54: ERROR[Main]:       ...inetest/bin/../mods/global_exchange/exchange_machine.lua:537: in function <...inetest/bin/../mods/global_exchange/exchange_machine.lua:535>
2021-08-23 20:51:54: ERROR[Main]:       ...st/nalc-stable/minetest/bin/../builtin/game/register.lua:422: in function <...st/nalc-stable/minetest/bin/../builtin/game/register.lua:406>

Ce produit alors qu'un joueur essaye de vendre un item pouvant honorer une offre d'achat d'un autre joueur mais que ce dernier a un compte vide ou pas assez d'argent pour tenir sa promesse d'achat.

``` 2021-08-23 20:51:54: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'global_exchange' in callback on_playerReceiveFields(): ...stable/minetest/bin/../mods/global_exchange/exchange.lua:271: SQL error: CHECK constraint failed: Amount > 0 2021-08-23 20:51:54: ERROR[Main]: stack traceback: 2021-08-23 20:51:54: ERROR[Main]: [C]: in function 'error' 2021-08-23 20:51:54: ERROR[Main]: ...stable/minetest/bin/../mods/global_exchange/exchange.lua:271: in function 'sql_error' 2021-08-23 20:51:54: ERROR[Main]: ...stable/minetest/bin/../mods/global_exchange/exchange.lua:823: in function 'put_in_inbox' 2021-08-23 20:51:54: ERROR[Main]: ...stable/minetest/bin/../mods/global_exchange/exchange.lua:1092: in function 'sell' 2021-08-23 20:51:54: ERROR[Main]: ...inetest/bin/../mods/global_exchange/exchange_machine.lua:387: in function 'post_sell' 2021-08-23 20:51:54: ERROR[Main]: ...inetest/bin/../mods/global_exchange/exchange_machine.lua:475: in function 'handle_main' 2021-08-23 20:51:54: ERROR[Main]: ...inetest/bin/../mods/global_exchange/exchange_machine.lua:537: in function <...inetest/bin/../mods/global_exchange/exchange_machine.lua:535> 2021-08-23 20:51:54: ERROR[Main]: ...st/nalc-stable/minetest/bin/../builtin/game/register.lua:422: in function <...st/nalc-stable/minetest/bin/../builtin/game/register.lua:406> ``` Ce produit alors qu'un joueur essaye de vendre un item pouvant honorer une offre d'achat d'un autre joueur mais que ce dernier a un compte vide ou pas assez d'argent pour tenir sa promesse d'achat.
sys4 added the
BUG
label 2021-08-23 22:41:39 +02:00
sys4 added the
Approuvé
label 2022-07-10 14:01:56 +02:00
sys4 added the
Crash
label 2022-07-10 14:03:14 +02:00
sys4 added this to the 1.5.0 milestone 2022-07-10 14:12:53 +02:00
Author
Owner

Comment reproduire le crash :

  1. Joueur1 : Credite son solde bancaire pour contenir 81 pieces (1 gold coin).
  2. Joueur1 : Dans la salle du marche faire offre achat d'un bloc de cobble au prix de 80 pieces.
  3. Joueur1 : retire 2 pieces en espece depuis ATM, le solde est maintenant a 79.
  4. Joueur2 : Dans la salle du marche faire offre vente 1 cobble pour 80 pieces.

CRASH !

Comment reproduire le crash : 1. Joueur1 : Credite son solde bancaire pour contenir 81 pieces (1 gold coin). 2. Joueur1 : Dans la salle du marche faire offre achat d'un bloc de cobble au prix de 80 pieces. 3. Joueur1 : retire 2 pieces en espece depuis ATM, le solde est maintenant a 79. 5. Joueur2 : Dans la salle du marche faire offre vente 1 cobble pour 80 pieces. CRASH !
sys4 added the
Résolue
label 2022-07-10 18:47:00 +02:00
sys4 closed this issue 2022-07-10 18:47:10 +02:00
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: nalc/nalc-server-mods#94
No description provided.