PlaceholderAPI / Javascript-Expansion

Adds javascript placeholders
GNU General Public License v3.0
22 stars 24 forks source link

HUGE off-heap memory leak and heap memory leak when using quick-js #61

Open sandtechnology opened 2 years ago

sandtechnology commented 2 years ago

Not sure if the issue from quick-js or your side, but I post them to remind other server owner when troubleshooting.

Heap memory leak by mat report:

image image

Merged path2gc shows it was referred by JNI Gobal ref:

image

Also off-heap having LARGE leak about 50GB+, jmap shows there are lots of JNI refs

image image image

sandtechnology commented 2 years ago

And seems is the bug from quack which introduced by Javascript-Expansion 2.x, so I will try to use 1.x to see if it fixed it.

partydev commented 2 years ago

Confirmed this with our testing. We were leaking 650mb/s at one point. Removing QuickJS solved it. We never had a heap memory leak, only native.

darbyjack commented 2 years ago

@sandtechnology I don't know a whole lot of c++ but I saw there is a fork of quack that seems better maintained. If you understand it, can you check this fork to see if it looks like it fixes the problem? https://github.com/uk-taniyama/quack

darbyjack commented 2 years ago

I just implemented another possible engine to use called RhinoJS. I'm not entirely sure what all it offers but I tested basic script evaluations which seemed to work fine. I have a copy of the jar in this open PR https://github.com/PlaceholderAPI/Javascript-Expansion/pull/65