AdguardTeam / AdguardForAndroid

Open bug tracker for Android version of AdGuard.
https://adguard.com/
1.32k stars 90 forks source link

Unable to access any webpage or different apps by mobile data on local http proxy mode #1829

Closed TheHasagi closed 6 years ago

TheHasagi commented 6 years ago

User can't open any webpage or access different apps by mobile data on local HTTP proxy mode. It works fine but only with Wi-Fi. Rooted device with auto-proxy mode switched on.

Logs are available under 1823884

Clips from log file:

iptables: Too many links., Root shell exited with non-zero exit status: 1
iptables: Too many links
iptables: Chain already exists., Another app is currently holding the xtables lock. Perhaps you want to use the -w option?

Customer ID

1823884

Your environment

vozersky commented 6 years ago

@TheHasagi same behavior with the latest beta?

TheHasagi commented 6 years ago

@vozersky The only I can say that this is the latest Nightly.

vivpash commented 6 years ago

@vozersky I tried using stable and latest nightly version but the issue persists. It's not like mobile data cannot access the internet at all, but only a few applications can access the internet using mobile data while others cannot, For example, I can send and receive messages on WhatsApp but cannot download any media from WhatsApp. None of Google's app can access internet including Chrome, Maps, Drive, etc.

I can upload not only logs but my settings as well if you need them. Also, Is there any possibility that the issue is from carrier's side settings (Although, I don't believe so)?

ameshkov commented 6 years ago

@vivpash we do need the "record everything" level (you can change the logging level in the advanced settings) logs indeed, but plz don't upload it here. Send them to devteam at adguard.com please.

vivpash commented 6 years ago

@ameshkov I have emailed the logs to the devteam. As I looked into filtering log, I can see there's no record of some apps in the log at all like 'HQ Trivia'!

While playing around with settings as I collected the log, I have discovered that everything works when I select notification icon or notification without icon in general settings but above mentioned problem happens with 'no notification or icon', even while Adguard is open and minimized in the background by home button! Additionally, in general settings, when I select 'notification without icon', I still can see the notification icon on the status bar.

Hope this helps and you can find the problem and fix it. Thanks.

ameshkov commented 6 years ago

Most likely the cause of it is the errors highlighted by @TheHasagi

10:12:10.892 [cached-pool-1-thread-58] DEBUG com.adguard.android.c.j - Command output: Another app is currently holding the xtables lock. Perhaps you want to use the -w option?

@admitrevskiy once you have a branch with the fix, please build a test build and post it here so that @vivpash could test it.

@sfionov what do you think, would it be enough to use -w?

sfionov commented 6 years ago

@ameshkov -w is a new option introduced in iptables v1.6.1 (Jan 2017), so it may be better to insert some try-or-sleep commands before other iptables commands: for tries in 1 2 3; do iptables -L > /dev/null || sleep 1; done

ameshkov commented 6 years ago

@admitrevskiy please note, that most likely we won't be able to reproduce this issue pon our side.

@sfionov

-w is a new option introduced in iptables v1.6.1 (Jan 2017)

We can also detect the iptables version while it's being initialized. Waiting should be ok as well, but it does not guarantee anything when there are multiple commands executed asynchronously by different apps.

sfionov commented 6 years ago

Sorry for inaccuracy, -w option exists since v1.4.20. But before v1.6.0 it doesn't have parameter and means "wait 1 second". Since v1.6.0 it requires a parameter, otherwise it will wait indefinitely.

ameshkov commented 6 years ago

I suggest detecting the iptables version and using smth like -w 3 in case of v1.6.0

admitrevskiy commented 6 years ago

@vivpash Hi! Please install this version and let me know how it works: https://www.dropbox.com/s/ynyiikdafx0pmpx/adguard-android-iptables-w-fix-debug.apk?dl=0

vivpash commented 6 years ago

@admitrevskiy Hi! Thanks for the update, however, I still have noticed the same problem; everything works with notification icon enabled and some apps can't access the internet with "None" for notification while on HTTP Proxy root mode.

admitrevskiy commented 6 years ago

@vivpash Please record new logs for the last installed version. We do need "record everything" logging level (Settings -> Advanced -> Logging level). Send them to devteam at adguard.com, please.

vivpash commented 6 years ago

@admitrevskiy I have sent the logs. Thanks.

ameshkov commented 6 years ago

everything works with notification icon enabled and some apps can't access the internet with "None" for notification while on HTTP Proxy root mode.

This is somewhat expected - Android often kills AdGuard when you have no foreground icon set to it.

Try enabling pref.root.set.oom_adj in the settings - advanced - low level and see if it helps

vivpash commented 6 years ago

This is somewhat expected - Android often kills AdGuard when you have no foreground icon set to it.

Does Android system kills AdGuard service as soon as I minimize the app? Because if no notification icon is selected, those apps which don't work don't work instantaneously.

Try enabling pref.root.set.oom_adj in the settings - advanced - low level and see if it helps

It doesn't seem to help!

ameshkov commented 6 years ago

Does Android system kills AdGuard service as soon as I minimize the app? Because if no notification icon is selected, those apps which don't work don't work instantaneously.

Depends on the firmware. On some phones, it does indeed.

Some firmwares provide different "whitelists" and "exceptions lists" so that a user could disable this behavior for a particular app.

admitrevskiy commented 6 years ago

We closed associated with this issue PR on bit (#438)