-
-
Notifications
You must be signed in to change notification settings - Fork 235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Almost always getting LockTimeoutException upgrading from transaction to atomic service #570
Comments
@ibrunotome I will try to reproduce the case. Thank you. |
@ibrunotome It looks like your problem is related to laravel octane. At the moment, I have not tested the wallet with roadrunner, swoole, open swoole and fibers inside octane. I think that the lock is not removed there and the application crashes by timeout. |
I forgot to mention that I always was using octane, glad to see that you saw that in the stacktrace 🙌 |
Hi, can I help with something related to test it with octane? |
Hi, @ibrunotome . Now it's busy at work. Didn't get to check. I'll try to take a look over the weekend. |
It is necessary to rewrite part of the package under octane, and this is labor-intensive. At the moment, it is not safe to use even older versions with octane. I will try to add octane support in the future, but there is no support right now. @ibrunotome There are too many problems with octane. Postponed this idea. |
The case is easy to reproduce, there are no problems with this. I will soon return to trying to screw the octane. Try to fix the problem yourself, maybe you can do it faster. But I would not recommend using previous versions in production. I ran our race condition tests in 9.0+ octane and the problem is there. |
@ibrunotome tag 9.4.0 |
Describe your task
Started to migrate to atomic because in the docs there is an advertise to replace transaction by it since 9.2.
The user request a withdrawal from his virtual wallet to his real bank account, the balance is updated and a fee is transferred to one wallet.
In the admin panel, there is a nova action to confirm or deny the user withdrawal to his real bank account.
Since the
FromProcessingToConfirmedAction
doesn't touch wallet, I will paste just theFromProcessingToDeniedAction
To Reproduce
Steps to reproduce the behavior:
Both actions randomly gives me LockTimeoutException, if I change the driver from redis to database, it works sometimes and them the exception comeback, I change from database to redis, the same behavior happens.
There is no other actions running in background, I'm in the localhost with no other users/jobs/schedules interacting with the wallet.
When using:
the 10 seconds is not respected, the nova action gives me this instantly:
When using redis for lock driver, the 10 seconds is respected.
Trace Error
Server:
The text was updated successfully, but these errors were encountered: