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

High CPU consumption in v4.6 due to a TCP/IP stack implementation bug #5505

Open
4 of 6 tasks
ameshkov opened this issue Nov 7, 2024 · 97 comments
Open
4 of 6 tasks

Comments

@ameshkov
Copy link
Member

ameshkov commented Nov 7, 2024

Please answer the following questions for yourself before submitting an issue

  • Filters were updated before reproducing an issue
  • I checked the knowledge base and found no answer
  • I checked to make sure that this issue has not already been filed

AdGuard version

v4.6.4 (204)

Environment

  • brand = samsung
  • manufacturer = samsung
  • model = SM-A256B
  • version = 14
  • security_patch = 2024-10-01

HTTPS filtering

  • yes, I do

Root access

  • yes, I have it

Integration with AdGuard VPN

  • yes, I do

Routing mode

Local VPN

Ad Blocking

No response

Privacy

No response

Social

No response

Annoyances

No response

Security

No response

Language-specific

No response

Other

No response

Which DNS server do you use?

DNS protection disabled

DNS protocol

None

Custom DNS

No response

What Stealth Mode options do you have enabled?

No response

Issue Details

The issue was originally reported by @derKief, check out the logs analysis here:
#5499 (comment)

To sum it up, AdGuard v4.6 consumes several times more than v4.5

Expected Behavior

No response

Actual Behavior

The usage should be more or less the same in v4.5 and v4.6.

Screenshots

No response

Additional Information

No response

@ameshkov
Copy link
Member Author

ameshkov commented Nov 7, 2024

Things to check:

  1. Is it specific to Samsung?
  2. One thing that's unusual compared to regular configuration is that DNS protection is disabled and Android's private DNS is used instead.

@derKief
Copy link

derKief commented Nov 7, 2024

@ameshkov

  • Is it specific to Samsung? My other device that has the same symptoms is also a Samsung -> Galaxy S24 (SM-S921B/DS)

  • One thing that's unusual compared to regular configuration is that DNS protection is disabled and Android's private DNS is used instead. I changed it during the whole troubleshooting because I suspected it, but it makes no difference.

@0xrxL
Copy link

0xrxL commented Nov 7, 2024

I don't know about 4.6, but this is the last stats from Nightly 44:

Screenshot_20241107_205512_AdGuard
Screenshot_20241107_210350_Device care

and CPU foreground usage is weirdly high, despite system battery usage is 1.6%.

@0xrxL
Copy link

0xrxL commented Nov 7, 2024

@ameshkov Can this usage related to this issue in any way?

P.S: I have a S23 Plus however.

@ameshkov
Copy link
Member Author

ameshkov commented Nov 8, 2024

@0xrxL if this is a 24-hours usage then it looks good to me.

@derKief on the contrary faces a real issue. We've been trying to reproduce it on Samsung devices yesterday but no success so far.

@ameshkov
Copy link
Member Author

ameshkov commented Nov 8, 2024

@derKief just in case, could you please try nighlty version of AG? It has just minor improvements, but for some reason we don't see reports from Samsung owners on the nightly build (and the two I saw on GH seem to have normal usage).

@abryant-hv
Copy link

abryant-hv commented Nov 8, 2024

Ever since at least 4.6.4, Adguard has been the top consumer of battery life on my (Samsung) phone every time I've checked, with no change in my usage of the phone. I'll try the nightly today, but 4.6.204 definitely did not fix the issues. And yes, I have sent the logs to support, but I got an email this morning closing the ticket, with no other information.

I don't want to just pile on this ticket with a useless comment, but this issue is definitely not resolved with 4.6.204.

@PavelParkhomenko
Copy link

PavelParkhomenko commented Nov 8, 2024

And yes, I have sent the logs to support, but I got an email this morning closing the ticket, with no other information.

We responded to you yesterday in ticket #978524 before closing it. In our response, we informed you that the app logs were forwarded to our development team and provided a link to this issue so you can track further progress.

@abryant-hv
Copy link

Yes there was a link to this issue, which is why I'm here. It sounded above like victory was being declared a bit too early, but perhaps I misread that.

Back on topic, I've used the v4.7 Nightly 44 this morning for about 3 hours, and AdGuard has used 19.1% of my battery in that time, 3 times more than the next app. Device battery usage is still higher than normal with the latest nightly. :(

@ameshkov
Copy link
Member Author

ameshkov commented Nov 8, 2024

@abryant-hv what exact Samsung model are you using just in case?

@abryant-hv
Copy link

It's a "Galaxy A52 5G". Model name is "SM-A526U"

@derKief
Copy link

derKief commented Nov 8, 2024

with the Nightly 44 (4.7.89) it has gotten better but in direct comparison to the stable 4.5 it is still too high/much.
Tested with the SM-A256B (Galaxy A25). My other phone the Galaxy S24 is still on v4.5 and will remain so until the problem is resolved.

@ameshkov I replied to your private e-mail. Waiting on feedback.

@derKief
Copy link

derKief commented Nov 9, 2024

Today I tried to update to the new 4.7 Nightly 45, but it didn't work. The app crashed and wouldn't start anymore.
Since I don't really have the time to do any more error analysis, I've gone back to the stable version 4.5, which works
without any problems. Hopefully this is fixed soon ....

@0xrxL
Copy link

0xrxL commented Nov 9, 2024

Today I tried to update to the new 4.7 Nightly 45, but it didn't work. The app crashed and wouldn't start anymore. Since I don't really have the time to do any more error analysis, I've gone back to the stable version 4.5, which works without any problems. Hopefully this is fixed soon ....

Mhh...weirdly in my case the Nightly 45 (at least for the moment) seems to be very optimised. Check it out here:

Screenshot_20241109_173142_Device care

@Cb1231ct
Copy link

Cb1231ct commented Nov 9, 2024

Had this been fixed yet. I had to turn it off the drain was so bad. Where can I find 4.5th go back to it

@jordansworld
Copy link

no. i would just go back to 4.5 for now

@Cb1231ct
Copy link

Cb1231ct commented Nov 9, 2024

Yes where is it to download please

@derKief
Copy link

derKief commented Nov 9, 2024

@solkarnar
Copy link

I know it's a Samsung ticket but i have the same problem on a Xiaomi Phone. I have reverted to 4.5 and will be watching this ticket to see if any solutions manifests itself.

@jordansworld
Copy link

good to know its an all around issue

@muchqs
Copy link

muchqs commented Nov 10, 2024

I don't think the 4.6 build 204 Hotfix version completely fixed the problem. The battery drain caused by the calendar timezone change when phone is idle is gone. However the app still seems to cause very high CPU usage when it's not idle, causing phone to heat up badly and battery goes down insanely fast.

I posted here. The AdGuard battery stat screen shows 24-hour usage is normal, but when I use the phone, CPU temp goes through the roof, approaching around 80C sometimes in as little as 2-5 minutes. And the battery drops super fast. The phone becomes a very effective hand warmer.

I noticed this while using the Bing app and AliExpress app in particular.

I went back to v4.5. Phone still got warm while using those apps but not as much as the v4.6 build 204 Hotfix version.

v4.6 build 204 Hotfix - CPU temp 70-80C while using apps. Temp consistently above 70C with spikes to 80C.

v4.5 - CPU temp 60-70C while using apps. Temp around 60C with a few spikes to 70C.

phone is Vivo X100 Pro.

@derKief
Copy link

derKief commented Nov 10, 2024

I know it's a Samsung ticket but i have the same problem on a Xiaomi Phone. I have reverted to 4.5 and will be watching this ticket to see if any solutions manifests itself.

I can now confirm that this is not just a Samsung problem. My wife's Poco X6 Pro is also affected and here too we are back to v4.5

@0xrxL
Copy link

0xrxL commented Nov 10, 2024

Heh...Unfortunately, today the latest Nightly started to drain my battery again, and this after starting to watch a TV series from web browser. This problem didn't happen during normal navigation, maybe this can helpful to find the root of problem @ameshkov?

@unknown4849
Copy link

Xiaomi (poco F6) too. i first think my devices broken XD. after restart and start adguard seem fine.

security patch same 2024-10 -1, could this be the cause? i feel before update to this patch don't have this problem, but after update at today i got this problem CPU locked at high speed (via CPUZ)

@muchqs
Copy link

muchqs commented Nov 11, 2024

I don't think the 4.6 build 204 Hotfix version completely fixed the problem. The battery drain caused by the calendar timezone change when phone is idle is gone. However the app still seems to cause very high CPU usage when it's not idle, causing phone to heat up badly and battery goes down insanely fast.

I posted here. The AdGuard battery stat screen shows 24-hour usage is normal, but when I use the phone, CPU temp goes through the roof, approaching around 80C sometimes in as little as 2-5 minutes. And the battery drops super fast. The phone becomes a very effective hand warmer.

I noticed this while using the Bing app and AliExpress app in particular.

I went back to v4.5. Phone still got warm while using those apps but not as much as the v4.6 build 204 Hotfix version.

v4.6 build 204 Hotfix - CPU temp 70-80C while using apps. Temp consistently above 70C with spikes to 80C.

v4.5 - CPU temp 60-70C while using apps. Temp around 60C with a few spikes to 70C.

phone is Vivo X100 Pro.

I downgraded even more today to v4.4.1 as I find even with v4.5 the CPU temp seems rather elevated.
And initial results show that indeed, v4.4.1 is better than v4.5.

Before testing v4.4.1, CPU temp was 100% under 40C.
After using AliExpress app for around 15 min, CPU temp was 100% above 40C, but also all under 50C except one single spike to 50C.
Used the Bing app for 14 min. CPU temp was still consistently between 40C to 50C, never above 50C.

on v4.5, after using the same apps, CPU temp would be between 60-70C.

so far my results:
v4.6 hotfix - CPU temp 70-80C
v4.5 - CPU temp 60-70C
v4.4.1 - CPU temp 40-50C.

gonna do the same tests again tomorrow.

@ameshkov
Copy link
Member Author

@0xrxL why do you think it's a "drain" and not a normal usage? Did it stop after you finished watching? Is it specific to that website?

@ameshkov
Copy link
Member Author

ameshkov commented Nov 11, 2024

@muchqs tbh temperature numbers do not provide us with any insights into the issue.

AdGuard prints CPU usage numbers measured by the system, it'd be helpful if you compare them between different versions.

Basically, we need every record in the log that contains Calculated battery usage (it's printed to the normal INFO log as well). I explained them here: #5499 (comment)

@0xrxL
Copy link

0xrxL commented Nov 20, 2024

@derKief I think you should tag users to get their response.

@DonEstefan
Copy link

@derKief, my phone rebooted, so I can't reproduce the problem right now. Not with stable and also not with nightly. But I'm confident it won't take long before the problem comes back. I'm also on 4.7 Nightly 52 now...

@ameshkov
Copy link
Member Author

@muchqs we tried tons of apps and so far no issues were reproduced. Of course we tried Bing app, no luck as well.

If you can reproduce that on your side, the log and threads stats will be very helpful.

With this kind of bugs they don't usually happen at will, the stars must align :(

@maxikuzmin maxikuzmin added this to the 4.7 milestone Nov 20, 2024
@ameshkov
Copy link
Member Author

Anyone, any luck with reproducing on nightly 52? :)

@derKief
Copy link

derKief commented Nov 21, 2024

Hi Andrey,
I've had the whole thing running for 24 hours now and the problems with the CPU cores/frequencies and the high temperature have not reoccurred.
The battery consumption has also normalized somewhat but is still higher in direct comparison with stable version 4.5.
What is noticeable here is the higher CPU background activity inside the Adguard battery stats.

My summary: the problem has been significantly improved but is still not as good as it was in version 4.5.

@ameshkov
Copy link
Member Author

Argh, but there was literally no important changes 51 --> 52 😢

Just in case, here's APK for nightly 51:
https://uploads.adguard.org/adguard-4.7_Nightly_51.apk

What is noticeable here is the higher CPU background activity inside the Adguard battery stats

Is it with debug logging? Debug logging adds extra overhead.

@derKief
Copy link

derKief commented Nov 21, 2024

nope ... debug logging is deactivated.

@DonEstefan
Copy link

@DonEstefan could you please export logcat then? adb logcat > logcat.log

@ameshkov, I sent a message to the devteam mail address with the cpu stats and the logcat results using 4.7 Nightly 52.
In my case the CPU load was caused by the "firewall-manage" threat.

@ameshkov
Copy link
Member Author

@derKief even though it's not as bad as it was, could you please enable debug-level logging and export it after some long using of the app? Maybe this "packet getting stuck" issue still happening but for shorter periods of time?

@DonEstefan in your case it's related to Firewall not being able to compose a notification for Google Health app:
11-21 18:31:38.159 19186 19387 D C.V : 18:31:38.159 [firewall-manager-notification-rules-pool-28-thread-1] No UID associated with packageName com.google.android.apps.healthdata, cannot assemble firewall notification rules

We're looking into it.

@derKief
Copy link

derKief commented Nov 22, 2024

I won't have the opportunity to test for a while now and have therefore gone back to the stable version 4.5.
The troubleshooting will have to take place without me for now. Sorry

@0xGingi
Copy link

0xGingi commented Nov 22, 2024

On Nightly 54, after a full days usage, reported battery usage is only at 1%, think it's been fixed

@solkarnar
Copy link

Any idea when nightly 54 will be pushed to production?

@0xrxL
Copy link

0xrxL commented Nov 24, 2024

Any idea when nightly 54 will be pushed to production?

So...nightly 54 fixed battery drain?

I'm asking this because I can't reproduce battery drain too...for the moment.

@derKief
Copy link

derKief commented Nov 24, 2024

@0xrxL and the rest
The problem is not solved for everyone. In my case, the problem with the high CPU load/frequencies and the resulting high temperatures was solved. However, the increased battery consumption is still there. You can see this quite well from the high CPU background activity in the Adguard statistics. I was able to compare this quite well with my S24, which runs on v4.5.

Its better but not fixed (at least for me). I already mention this here

@ameshkov
Copy link
Member Author

@DonEstefan regarding the issue that you sent we figured it out. The problem was caused by a completely different bug: when you switch "firewall notifications" it was doubling the number of firewall rules (you can't see them though). In your case the number of firewall rules is probably through the roof and this is causing everything else (including the logs export issue). In the next nightly update we'll remove those duplicate rules, but you can quickly fix it too just by clearing app data.

@derKief I honestly don't understand what could've fixed that high temperature issue. I am of course glad that it's gone, but I suspect something is still wrong. If at some point you'll have time to collect the logs again, please let me know.

@AlgorithmOfGithub
Copy link

AlgorithmOfGithub commented Nov 27, 2024

@ameshkov Hi, i have Samsung S24+, for me not drain battery but when i close the app notifications, the app's battery usage decrease and since from 4.5 when i close notifications from app settings, the app going to crash and i have to restart app again. Maybe gonna help for the issue.
For now;

  • the app notifications closed from phone settings
  • https filtering open just for browser
  • and samsung has 'sleeping apps' mode and open on me for most of apps,
  • adguard version 4.7 n57
  • other settings same most of others.
    (No drain and heat issue)

@ameshkov
Copy link
Member Author

ameshkov commented Nov 27, 2024

when i close notifications from app settings

Could you please explain what exactly you're doing here? Maybe with a screenshot?

@AlgorithmOfGithub
Copy link

AlgorithmOfGithub commented Nov 27, 2024

when i close notifications from app settings

Could you please explain what exactly you're doing here? Maybe with a screenshot?

step by step

  • download ag v4.7 n57
  • install default (licence, https filtering, cert, vpn, etc.)
  • go to phone settings (for samsung) > apps > Adguard > notifications > remove tick from 'allow notifications'
  • [vpn logo out] go to adguard > just showing adguard symbolScreenshot_20241127_203412_AdGuard.jpg

@Versty
Copy link
Contributor

Versty commented Nov 28, 2024

@AlgorithmOfGithub We have managed to reproduce this bug on our side.
Will be fixed, you can track progress in the #5523 issue.

@DonEstefan
Copy link

@DonEstefan regarding the issue that you sent we figured it out. The problem was caused by a completely different bug: when you switch "firewall notifications" it was doubling the number of firewall rules (you can't see them though). In your case the number of firewall rules is probably through the roof and this is causing everything else (including the logs export issue). In the next nightly update we'll remove those duplicate rules, but you can quickly fix it too just by clearing app data.

@ameshkov, I'm back an v4.5 for several days now, which causes no trouble. Tomorrow I'll install the latest Nightly (probably 4.7 n59) and keep you posted.

@jordansworld
Copy link

@ameshkov do you think this bug will be fixed within a couple months?

@DonEstefan
Copy link

@DonEstefan regarding the issue that you sent we figured it out. The problem was caused by a completely different bug: when you switch "firewall notifications" it was doubling the number of firewall rules (you can't see them though). In your case the number of firewall rules is probably through the roof and this is causing everything else (including the logs export issue). In the next nightly update we'll remove those duplicate rules, but you can quickly fix it too just by clearing app data.

@ameshkov, I'm running nighty 59 for more than 24h. No CPU load issues any more. Battery usage is back to normal. Log export is also working great.
Thanks a lot guys. You really made my day 👍

@jordansworld
Copy link

i know this hasn't been fixed even. but my battery ussge today shows ADGuard used 4 percent only
Screenshot_20241202_153254_Device care

@jordansworld
Copy link

Screenshot_20241202_153607_Device care

for a 7 hour period only 4 percent is good wouldn't you say? @ameshkov

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

No branches or pull requests