What's new
  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

spdMerlin spdMerlin v4.4.15 [2025-Nov-07] - Internet Speedtest and Monitoring Tool for AsusWRT Merlin

Code:
# l /jffs/addons/spdmerlin.d
-rw-rw-rw-    1 Gilly    root           339 Aug  9 20:42 .interfaces.bak
-rw-rw-rw-    1 Gilly    root         35149 Jul 25 19:28 LICENSE
-rw-rw-rw-    1 Gilly    root          2621 Jul 25 19:27 README.md
drwxrwxrwx    2 Gilly    root         17704 Aug  9 20:43 csv/
drwxrwxrwx    2 Gilly    root           376 Jul 25 19:27 ookla/
drwxrwxrwx    2 Gilly    root           160 Jul 25 19:27 ooklalicense/
-rw-rw-rw-    1 Gilly    root         89381 Jul 25 19:27 spdstats_www.asp

That's it, all I have. I don't have connmon installed.
 
That's it, all I have.
Thanks for sharing your files list. I'm planning on re-installing the script and start using it normally by tomorrow. I'll do uninstall, manual cleanup, fresh install, move storage, cleanup remnant files, and I'm done for now.
I'll stop debugging for the meantime until I get real and effective feedback from the code owners.
 
I just uninstalled spdMerlin and then made sure there are no files left related to the script both at JFFS and USB locations. Then, I made a fresh install and changed all the settings to my preference right away to get it ready to work for me.
Now that I checked what has remained in the JFFS storage location, nothing seems wrong to me (except for .interfaces.bak file). I even don't have the csv folder @Ripshod has in his own setup.

Code:
# l /jffs/addons/spdmerlin.d
-rw-rw-rw-    1 atr      root           339 Sep  6 05:30 .interfaces.bak
-rw-rw-rw-    1 atr      root         35149 Sep  6 05:32 LICENSE
-rw-rw-rw-    1 atr      root          2621 Sep  6 05:24 README.md
drwxrwxrwx    2 atr      root             0 Sep  6 05:22 ookla/
drwxrwxrwx    2 atr      root             0 Sep  6 05:22 ooklalicense/
-rw-rw-rw-    1 atr      root         89381 Sep  6 05:25 spdstats_www.asp

I'll keep monitoring the JFFS location to see when files begin to show up in my setup.
 
After many hours of troubleshooting, code understanding, fixing, testing, and then doing my very first code commit in GitHub.
Finally, I submitted my very first pull request to the develop branch of spdMerlin script to address the bug of losing the "excluded" mark on interfaces when their status switch between up and down, with a minor improvement to relevant code.
After the fresh install, now I can confirm -again- the bug of "excluded interfaces" getting re-included after each "open-vpn" event.

It can be easily reproduced as simple as:
1- Exclude VPNC1 interface from automatic speed test interfaces
2- Stop your OVPN Client 1
3- Start again your OVPN Client 1
Done! There you get your VPNC1 included into automatic speed test interfaces again!!
 
Last edited:
@ExtremeFiretop
Testing again the proposed fix for the "excluded interfaces" bug, then reviewing again my rejected Pull Request's code change, especially now that I have a healthy instance of the script; I just found out that the proposed fix did indeed generate another bug instead of fixing the original bug, as commented by @Martinski yesterday.
The bug is deeper than I thought before. I'll do more troubleshooting to see if it's setup-related or a valid script bug.
 
OMG, I can't believe it!
It is a significant script bug that has been introduced in the latest stable version (4.4.14) and is still present right now in the development branch!

It literally resets interface states every time you have an OpenVPN going down or up. So, whatever interfaces you exclude from automatic speed tests in vesion 4.4.14, every time you have "openvpn-event" script executed by the system, spdMerlin calls for an interface states reset, hence re-including all excluded interfaces again!!!
This bug got extended to WireGuard clients in the development branch now, hoping it does not reach the stable branch!
@ExtremeFiretop @Martinski
 
Last edited:
OMG, I can't believe it!
It is a significant script bug that has been introduced in the latest stable version (4.4.14) and is still present right now in the development branch!

It literally resets interface states every time you have an OpenVPN going down or up. So, whatever interfaces you exclude from automatic speed tests in vesion 4.4.14, every time you have "openvpn-event" script executed by the system, spdMerlin calls for an interface states reset, hence re-including all excluded interfaces again!!!
This bug got extended to WireGuard clients in the development branch now, hoping it does not reach the stable branch!
@ExtremeFiretop @Martinski
I already have a fix for this bug in the latest 'develop' branch v4.4.15 version. Please retest using this very latest code.

Thanks.
 
I already have a fix for this bug in the latest 'develop' branch v4.4.15 version. Please retest using this very latest code.
Thank you.
Yes, this fixed the bug as I just tested bringing my VPNC1 down then up, twice. This is after updating to your pull request #47 to be specific for your records.
I'll stay on the "develop" branch for now waiting for a new stable release.
 
Release Notes for spdMerlin v4.4.15 production version now available
[2025-Nov-07]


1) FIXED: Modified code to better handle VPN client interfaces coming up while the 'startup' call is also executed during reboot. This fixes 2 intermittent issues: WebUI not getting mounted, and losing VPN client interface settings for automated speed tests.
[Thanks to @Ripshod for finding/reporting the bug, and for providing the critical logs from reboot that were needed to figure out the root cause of the problem].​

2) FIXED: Additional check for duplicate entries in the interface list.
[Thanks to @Ripshod for finding/reporting the bug]​

3) FIXED: Bug when parsing a Speedtest Server name that included parentheses, which caused the 'ServerName' and 'ServerID' database fields to be set incorrectly.
[Thanks to @cristian.ionica for finding/reporting the bug]​

4) IMPROVED: Whenever any WireGuard or OpenVPN client is set to enabled or disabled by the user from the built-in VPN WebUI tab, new code will update the corresponding interfaces in the configuration file for spdMerlin.

5) IMPROVED: Modified code to re-initialize global parameters after the USB-attached drive has been mounted and Entware is found.

6) IMPROVED: Cosmetic changes/improvements on the WebUI page to show preferred server entries that were longer than the width of the reserved space.

7) IMPROVED: More checks to clean up files when switching from JFFS to USB and vice versa.

8) IMPROVED: Added code to get "vpnclient" service events.

9) IMPROVED: Removed old Tomato JavaScript file references.

10) Miscellaneous improvements and fine-tuning.



The fork from @Jack Yaz's spdMerlin add-on is now hosted on the AMTM-OSR GitHub repo:
 
I don't know how I have not been credited for two of the changes in the this latest release...

Change #1:
and losing VPN client interface settings for automated speed tests.
I was the only one who reported the issue that resulted in this part of the change. Additionally, although it is a high-importance issue, and causes users of the previous release to lose their script settings, releasing a new version was intentionally postponed, regardless of the settings loss I had, and raised the warning for it.
Refer to my own post #106 in this thread.
Still, @Ripshod reported the first part of the change indeed, and I got no credit for that.

Change #7:
7) IMPROVED: More checks to clean up files when switching from JFFS to USB and vice versa.
I was the only one who raised the concerns and alert to remnant files/folders; as I had a lot of remnant files and folders in my JFFS script's folder, as I had my script storage location switched to USB in my setup and still had too many remnants.
Additionally, in order to conclude and report this particular issue; I completely lost all my historic test results a few times before pin-pointing the bug.
Refer to my own post #100 in this thread.

Not giving proper credit in this release is really upsetting to me, especially given all the circumstances around these bugs discovery.
 
Last edited:

Similar threads

Latest threads

Support SNBForums w/ Amazon

If you'd like to support SNBForums, just use this link and buy anything on Amazon. Thanks!

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Back
Top