I found a huge memory leak when SQM shaper is engaged on my MT7620N-powered 
router. It regards IPv6 operation only though.

How to test:

1. Obvious part: sqm-scripts package has to be installed, /etc/config/sqm has 
to be configured with shaper and cake or fq_codel qdisc enabled.

2. Your connection has to support IPv6 because memory starts leaking only with 
IPv6 TCP transfers (I have tested downlink, not sure about uplink).

3. You need to ssh to your router and monitor system resources with top -d 1 
(for better resolution).

4. Now it's time to engage some huge file download straight to /dev/null. 
Debian 10 image will do. Run wget -6 
https://caesar.ftp.acc.umu.se/debian-cd/current/amd64/iso-cd/debian-10.3.0-amd64-netinst.iso
 -O /dev/null.

5. Watch your router memory drains to zero. Notice that ksoftirqd process is 
suspiciously active (about 19% CPU, it's quite untypical).

6. Try wget with -4 flag to confirm that only IPv6 operation is affected.

What I figured at the moment:

1. UDP transmission are not affected. Torrents work just fine with IPv6 peers, 
no leaks.

2. Utility doesn't matter. I tried curl, few browsers, no difference.

3. It is related to shaper because if you set it to zero in configuration, 
effectively disabling it, leak stops.

4. IPv4 downloads doesn't cause the leak.

5. Kernel doesn't show what process misbehaves with memory.

I have no knowledge of what exactly causes the leak apart from it having 
something to do with shaper function. I don't have any means of using a 
debugger on the router since it's quite restricted on resources.

P.S. My WAN connection is a USB LTE modem.
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to