Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e8bc65e8 authored by Xiao Ma's avatar Xiao Ma
Browse files

Downgrade Log message level from WTF to WARN for null BSSID case.

Rarely ScanResultInfo might be null when starting provisioning,
for example, switch between different APs frequently. So when L2
roaming happens the current tracked bssid is null, which throws
WTF log message. Downgrade the Log level to WARN in R before WiFi
framework fixes the null BSSID issue temporarily.

Bug: 160217503
Test: atest NetworkStackTests NetworkStackIntegrationTests

Original change: https://android-review.googlesource.com/c/platform/packages/modules/NetworkStack/+/1385757

Merged-In: Iaa48f6ac357c22c7cbcba734bdaa787f133d1858
(cherry picked from commit ecfabade)

Change-Id: I8fb261203450239a16511d0b055c9c5bf2379f3f
parent d4ab8cdf
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -49,4 +49,11 @@ public final class ShimUtils {
    public static boolean isAtLeastR() {
    public static boolean isAtLeastR() {
        return isReleaseOrDevelopmentApiAbove(Build.VERSION_CODES.Q);
        return isReleaseOrDevelopmentApiAbove(Build.VERSION_CODES.Q);
    }
    }

    /**
     * Check whether the device supports in-development or final S networking APIs.
     */
    public static boolean isAtLeastS() {
        return isReleaseOrDevelopmentApiAbove(Build.VERSION_CODES.R);
    }
}
}
+9 −1
Original line number Original line Diff line number Diff line
@@ -1601,8 +1601,16 @@ public class IpClient extends StateMachine {
        mL2Key = info.l2Key;
        mL2Key = info.l2Key;
        mCluster = info.cluster;
        mCluster = info.cluster;


        // Sometimes the wifi code passes in a null BSSID. Don't use Log.wtf in R because
        // it's a known bug that will not be fixed in R.
        if (info.bssid == null || mCurrentBssid == null) {
        if (info.bssid == null || mCurrentBssid == null) {
            Log.wtf(mTag, "bssid in the parcelable or current tracked bssid should be non-null");
            final String msg = "bssid in the parcelable: " + info.bssid + " or "
                    + "current tracked bssid: " + mCurrentBssid + " is null";
            if (ShimUtils.isAtLeastS()) {
                Log.wtf(mTag, msg);
            } else {
                Log.w(mTag, msg);
            }
            return;
            return;
        }
        }


+8 −1
Original line number Original line Diff line number Diff line
@@ -2097,7 +2097,8 @@ public class IpClientIntegrationTest {
    private void doDhcpRoamingTest(final boolean hasMismatchedIpAddress, final String displayName,
    private void doDhcpRoamingTest(final boolean hasMismatchedIpAddress, final String displayName,
            final String ssid, final String bssid, final boolean expectRoaming) throws Exception {
            final String ssid, final String bssid, final boolean expectRoaming) throws Exception {
        long currentTime = System.currentTimeMillis();
        long currentTime = System.currentTimeMillis();
        final ScanResultInfo scanResultInfo = makeScanResultInfo(ssid, bssid);
        final ScanResultInfo scanResultInfo = (ssid == null || bssid == null)
                ? null : makeScanResultInfo(ssid, bssid);


        doAnswer(invocation -> {
        doAnswer(invocation -> {
            // we don't rely on the Init-Reboot state to renew previous cached IP lease.
            // we don't rely on the Init-Reboot state to renew previous cached IP lease.
@@ -2171,6 +2172,12 @@ public class IpClientIntegrationTest {
                TEST_DHCP_ROAM_SSID, TEST_DHCP_ROAM_BSSID, false /* expectRoaming */);
                TEST_DHCP_ROAM_SSID, TEST_DHCP_ROAM_BSSID, false /* expectRoaming */);
    }
    }


    @Test
    public void testDhcpRoaming_nullScanResultInfo() throws Exception {
        doDhcpRoamingTest(false /* hasMismatchedIpAddress */, "\"0001docomo\"" /* display name */,
                null /* SSID */, null /* BSSID */, false /* expectRoaming */);
    }

    @Test
    @Test
    public void testDhcpRoaming_invalidSsid() throws Exception {
    public void testDhcpRoaming_invalidSsid() throws Exception {
        doDhcpRoamingTest(false /* hasMismatchedIpAddress */, "\"0001docomo\"" /* display name */,
        doDhcpRoamingTest(false /* hasMismatchedIpAddress */, "\"0001docomo\"" /* display name */,