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

How to avoid the memory leak #981

Closed
lijiarui opened this issue Nov 22, 2017 · 7 comments
Closed

How to avoid the memory leak #981

lijiarui opened this issue Nov 22, 2017 · 7 comments
Labels

Comments

@lijiarui
Copy link
Member

lijiarui commented Nov 22, 2017

When I running wechaty for a while using npm package and hot-import module, I got the following logs

07:58:29 WARN PuppetWeb initWatchdogForPuppet() dog.on(reset) last food:inited, timeout:120000
08:00:32 WARN PuppetWeb initWatchdogForPuppet() dog.on(reset) last food:inited, timeout:120000
08:02:34 WARN PuppetWeb initWatchdogForPuppet() dog.on(reset) last food:inited, timeout:120000
08:04:36 WARN PuppetWeb initWatchdogForPuppet() dog.on(reset) last food:inited, timeout:120000
08:06:39 WARN PuppetWeb initWatchdogForPuppet() dog.on(reset) last food:inited, timeout:120000
08:08:42 WARN PuppetWeb initWatchdogForPuppet() dog.on(reset) last food:inited, timeout:120000
08:10:44 WARN PuppetWeb initWatchdogForPuppet() dog.on(reset) last food:inited, timeout:120000
08:12:47 WARN PuppetWeb initWatchdogForPuppet() dog.on(reset) last food:inited, timeout:120000
(node:59547) Warning: Possible EventEmitter memory leak detected. 11 scan listeners added. Use emitter.setMaxListeners() to increase limit
(node:59547) Warning: Possible EventEmitter memory leak detected. 11 login listeners added. Use emitter.setMaxListeners() to increase limit
(node:59547) Warning: Possible EventEmitter memory leak detected. 11 logout listeners added. Use emitter.setMaxListeners() to increase limit
(node:59547) Warning: Possible EventEmitter memory leak detected. 11 heartbeat listeners added. Use emitter.setMaxListeners() to increase limit
08:14:49 WARN PuppetWeb initWatchdogForPuppet() dog.on(reset) last food:inited, timeout:120000
(node:59547) Warning: Possible EventEmitter memory leak detected. 11 watchdog listeners added. Use emitter.setMaxListeners() to increase limit

How can I avoid this memory leak?

When I kill the process, I also can see a lot of chrome work background

lijiarui:~/workspace (master) $ ps -A
    PID TTY          TIME CMD
      1 ?        00:00:07 tini
      7 ?        00:00:00 micro-inetd
  34436 ?        00:00:00 tmux
  34437 pts/1    00:00:00 bash
  34438 pts/1    00:00:00 bash
  59079 ?        00:00:32 chrome
  59081 ?        00:00:00 chrome
  59102 ?        00:00:06 chrome
  59110 ?        00:01:13 chrome
  59220 ?        00:00:35 chrome
  59222 ?        00:00:00 chrome
  59243 ?        00:00:05 chrome
  59250 ?        00:01:18 chrome
  59468 ?        00:00:14 chrome
  59470 ?        00:00:00 chrome
  59491 ?        00:00:01 chrome
  59498 ?        00:01:04 chrome
  60100 ?        00:00:00 dropbear
  60101 ?        00:00:04 vfs-worker {"pi
  61144 pts/0    00:00:00 tmux
  62106 ?        00:00:00 chrome
  62108 ?        00:00:00 chrome
  62129 ?        00:00:00 chrome
  62136 ?        00:00:02 chrome
  62185 pts/1    00:00:00 ps

When I kill all relate process and restart a bot, then I found it still run a lot of chrom background

lijiarui:~/workspace (master) $ ps -A
    PID TTY          TIME CMD
      1 ?        00:00:07 tini
      7 ?        00:00:00 micro-inetd
  34436 ?        00:00:00 tmux
  34437 pts/1    00:00:00 bash
  34438 pts/1    00:00:00 bash
  60100 ?        00:00:00 dropbear
  60101 ?        00:00:04 vfs-worker {"pi
  61144 pts/0    00:00:00 tmux
  62230 pts/1    00:00:00 node
  62240 pts/1    00:00:04 node
  62250 ?        00:00:02 chrome
  62252 ?        00:00:00 chrome
  62273 ?        00:00:00 chrome
  62280 ?        00:00:06 chrome
  62326 pts/2    00:00:00 tmux
  62328 pts/3    00:00:00 bash
  62329 pts/3    00:00:00 bash
  62791 pts/3    00:00:00 ps
@huan
Copy link
Member

huan commented Nov 22, 2017

Please provide the reproduce steps.

And also instead of asking how, it's better to provide a pull request to fix it.

@lijiarui
Copy link
Member Author

maybe it is related to #978 but I'm not sure... still dig in it.

@lijiarui
Copy link
Member Author

lijiarui commented Nov 23, 2017

Using silly log, just run the smallest wechaty getting started demo will get the following result, maybe there are too many checkScan here.

07:22:39 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:40 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:41 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:42 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:43 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:44 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:45 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:46 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:47 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:48 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:49 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:50 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:51 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:52 SILL PuppetWebEvent onDing(heartbeat@browser)
07:22:52 SILL PuppetWeb initWatchdogForPuppet() dog.on(feed, food={type=undefined, data=heartbeat@browser})
07:22:52 SILL Wechaty memoryCheck() free: 3809 MB, require: 4 MB
07:22:52 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:53 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:54 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:55 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:56 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:57 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:58 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:59 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:23:00 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:23:01 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:23:02 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)

@lijiarui
Copy link
Member Author

This is a typescript bug

@huan huan reopened this Dec 12, 2017
@huan
Copy link
Member

huan commented Dec 12, 2017

There do have a memory leak. Please keep this issue open.

@huan
Copy link
Member

huan commented May 26, 2018

Should have been fixed by the related commit.

@huan huan closed this as completed May 26, 2018
@atubo2012
Copy link

image

The error appears after starting wechaty for 5 days .

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

No branches or pull requests

3 participants