Skip to content
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

About exitcode=133,Why? #103

Open
qzmer1104 opened this issue Jan 6, 2025 · 6 comments
Open

About exitcode=133,Why? #103

qzmer1104 opened this issue Jan 6, 2025 · 6 comments

Comments

@qzmer1104
Copy link

qzmer1104 commented Jan 6, 2025

image The last transaction triggered Exit-code 133, but it has been several hours since the second transaction. Why is the seqno obtained still the old one?

This is the newly added log
image

WalletV5 walletV5 ……
Long seqno = walletV5.getSeqno()
 log.info("Send-Jetton {}, seq: {}", walletV5.getAddress().toString(true, true, false), seqno);

{"@type":"error","code":500,"message":"LITE_SERVER_UNKNOWN: cannot apply external message to current state : External message was not accepted\nCannot run message on account: inbound external message rejected by transaction A93C7DEC4A8F450263D8BA896C322BB4FC411D50771F9A5C5D6693AF2D19F9DC:\nexitcode=133, steps=49, gas_used=0\nVM Log (truncated):\n...SIGNU\nexecute PUSHCONT x28945F0ADB31E1F2C087\nexecute IFNOT\nexecute XCHG s2\nexecute NOT\nexecute XCHG2 s0,s7\nexecute AND\nexecute THROWIF 132\nexecute XCPU s2,s5\nexecute EQUAL\nexecute THROWIFNOT 133\ndefault exception handler, terminating vm with exit code 133\n","@extra":"53442a10-be76-4f42-9805-cb9bcf517773"}

@qzmer1104
Copy link
Author

qzmer1104 commented Jan 23, 2025

Image

I have stored the seqno of the last transaction locally, and I get the latest one each time through wallet.getSeqno(). If it is found to be less than or equal to the cached seqno, it will automatically increase by 1 to avoid Error 133. However, my seqno is already far greater than the actual one, so why is it still reporting Error 133?

Image

@qzmer1104
Copy link
Author

@neodix42 Has there been no maintenance recently?

@qzmer1104
Copy link
Author

qzmer1104 commented Jan 23, 2025

I found that after restarting Application, tonlib still needs to synchronize nodes. Tonlib needs to reconstruct each time it broadcasts a transaction instead of caching it, right?

Image

@neodix42
Copy link
Owner

Hi, you can try using .ignoreCache(false) so the state of the blockchain would be cached.
Also with the next release, tonlib will have a method to update init block within the config, which will speed up the subsequent sync process big times.

@qzmer1104
Copy link
Author

qzmer1104 commented Feb 20, 2025

Hi, you can try using .ignoreCache(false) so the state of the blockchain would be cached. Also with the next release, tonlib will have a method to update init block within the config, which will speed up the subsequent sync process big times.

Is it best practice for Tonlib to use singleton pattern or spring's singleton bean?

  1. Because the above error will not occur when using multiple instances
  2. However, multiple instances can easily cause data to be resynchronized after each instance is constructed.

I will use .ignoreCache first to see the effect

@qzmer1104
Copy link
Author

Hi, you can try using .ignoreCache(false) so the state of the blockchain would be cached. Also with the next release, tonlib will have a method to update init block within the config, which will speed up the subsequent sync process big times.

Is it best practice for Tonlib to use singleton pattern or spring's singleton bean?

  1. Because the above error will not occur when using multiple instances
  2. However, multiple instances can easily cause data to be resynchronized after each instance is constructed.

I will use .ignoreCache first to see the effect

I found that my application used .ignoreCache(false) at the beginning。

So I think this configuration cannot avoid the problem of resynchronizing nodes caused by restarting and reconstruct Tonlib every time

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants