Skip to content

Commit 24b7d8d

Browse files
authored
Merge pull request #8869 from MicrosoftDocs/main
Auto push to live 2025-05-06 10:02:07
2 parents 99a6323 + ab86263 commit 24b7d8d

17 files changed

+209
-216
lines changed

.github/workflows/manage_stale_branches.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ name: Manage stale branches
22

33
permissions:
44
contents: write
5+
pull-requests: read
56

67
on:
78
workflow_dispatch:
@@ -19,4 +20,4 @@ jobs:
1920
]'
2021
ReportOnly: false
2122
secrets:
22-
AccessToken: ${{ secrets.GITHUB_TOKEN }}
23+
AccessToken: ${{ secrets.GITHUB_TOKEN }}

support/azure/azure-kubernetes/availability-performance/node-not-ready-then-recovers.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ To resolve this issue, follow these steps:
2929
1. Run `kubectl describe node <node-name>` to review detail information about the node's status. Look for any error messages or warnings that might indicate the root cause of the issue.
3030
2. Check the API server availability by running the `kubectl get apiservices` command. Make sure that the readiness probe is correctly configured in the deployment YAML file.
3131
3. Verify the node's network configuration to make sure that there are no connectivity issues.
32-
4. Check the node's resource usage, such as CPU, memory, and disk, to identify potential constraints. For more informations see [Monitor your Kubernetes cluster performance with Container insights](/azure/azure-monitor/containers/container-insights-analyze#view-performance-directly-from-a-cluster)
32+
4. Check the node's resource usage, such as CPU, memory, and disk, to identify potential constraints. For more information, see [Monitor your Kubernetes cluster performance with Container insights](/azure/azure-monitor/containers/container-insights-analyze#view-performance-directly-from-a-cluster).
3333

3434
For further steps, see [Basic troubleshooting of Node Not Ready failures](node-not-ready-basic-troubleshooting.md).
3535

support/azure/azure-kubernetes/create-upgrade-delete/aks-memory-saturation-after-upgrade.md

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
title: Memory saturation occurs after upgrade to Kubernetes 1.25
33
description: Resolve pod failures caused by memory saturation and out-of-memory errors after you upgrade an Azure Kubernetes Service (AKS) cluster to Kubernetes 1.25.x.
4-
ms.date: 06/14/2023
4+
ms.date: 05/06/2025
55
editor: v-jsitser
6-
ms.reviewer: aritraghosh, cssakscic, v-leedennis
6+
ms.reviewer: aritraghosh, cssakscic, v-leedennis, momajed
77
ms.service: azure-kubernetes-service
88
ms.custom: sap:Create, Upgrade, Scale and Delete operations (cluster or nodepool)
99
---
@@ -34,13 +34,49 @@ Performance degradation can occur in apps that run in the following environments
3434
3535
## Solution
3636

37+
> [!NOTE]
38+
> If you only experience increased memory usage and no other symptoms that are mentioned in the [Symptoms](#symptoms) section, no action is needed.
39+
3740
Beginning in the release of Kubernetes 1.25, the [cgroup version 2 API](https://kubernetes.io/blog/2022/08/31/cgroupv2-ga-1-25/) has reached general availability (GA). AKS now uses Ubuntu Linux version 22.04. By default, version 22.04 uses cgroup version 2 API. To make sure the cgroup version 2 API is available for use in other environments to prevent the memory saturation issue, follow this guidance:
3841

3942
- If you run Java applications, [upgrade to a Java version that supports cgroup version 2](https://kubernetes.io/blog/2022/08/31/cgroupv2-ga-1-25/#migrate-to-cgroup-v2) and follow the guidance in [Containerize your Java applications](/azure/developer/java/containers/overview). You might be able to update the base image in certain versions in which the fix has been backported. Use a version or framework that natively supports cgroup version 2. For Azure customers, Microsoft officially supports [Eclipse Temurin](https://adoptium.net/) binaries (Java 8) and [Microsoft Build of OpenJDK](https://www.microsoft.com/openjdk) binaries (Java 11+).
4043

4144
- Similarly, if you're using .NET, upgrade to [.NET version 5.0](https://devblogs.microsoft.com/dotnet/announcing-net-5-0/#containers) or a later version.
4245

43-
In addition, to enable pods to use more resources, increase their memory requests and limits.
46+
- If you see a higher eviction rate on the pods, [use higher limits and requests for the pods](/azure/aks/developer-best-practices-resource-management#define-pod-resource-requests-and-limits).
47+
48+
- `cgroup` v2 uses a different API than `cgroup` v1. If there are any applications that directly access the `cgroup` file system, update them to later versions that support `cgroup` v2. For example:
49+
50+
- **Third-party monitoring and security agents**:
51+
52+
Some monitoring and security agents depend on the `cgroup` file system. Update these agents to versions that support `cgroup` v2.
53+
54+
- **Java applications**:
55+
56+
Use versions that fully support `cgroup` v2:
57+
- OpenJDK/HotSpot: `jdk8u372`, `11.0.16`, `15`, and later versions.
58+
- IBM Semeru Runtimes: `8.0.382.0`, `11.0.20.0`, `17.0.8.0`, and later versions.
59+
- IBM Java: `8.0.8.6` and later versions.
60+
61+
- **uber-go/automaxprocs**:
62+
If you're using the `uber-go/automaxprocs` package, ensure the version is `v1.5.1` or later.
63+
64+
- An alternative temporary solution is to revert the `cgroup` version on your nodes by using the DaemonSet. For more information, see [Revert to cgroup v1 DaemonSet](https://github.com/Azure/AKS/blob/master/examples/cgroups/revert-cgroup-v1.yaml).
65+
66+
> [!IMPORTANT]
67+
> - Use the DaemonSet cautiously. Test it in a lower environment before applying to production to ensure compatibility and avoid disruptions.
68+
> - By default, the DaemonSet applies to all nodes in the cluster and reboots them to implement the `cgroup` change.
69+
> - To control how the DaemonSet is applied, configure a `nodeSelector` to target specific nodes.
70+
71+
## Status
72+
73+
Microsoft is working with the Kubernetes community to resolve the issue. Track progress at [Azure/AKS Issue #3443](https://github.com/kubernetes/kubernetes/issues/118916).
74+
75+
As part of the resolution, the plan is to adjust the eviction thresholds or update [resource reservations](/azure/aks/concepts-clusters-workloads#resource-reservations), depending on the outcome of the fix.
76+
77+
## Reference
78+
79+
- [Node memory usage on cgroupv2 reported higher than cgroupv1](https://github.com/kubernetes/kubernetes/issues/118916) (GitHub issue)
4480

4581
[!INCLUDE [Third-party disclaimer](../../../includes/third-party-disclaimer.md)]
4682

support/azure/virtual-machines/windows/serial-console-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ ms.custom: sap:VM Admin - Windows (Guest OS)
2020

2121
[!INCLUDE [Feedback](../../../includes/feedback.md)]
2222

23-
Serial Console in the Azure portal provides access to a text-based console for virtual machines (VMs) and virtual machine scale set instances running either Linux or Windows. Serial Console connects to the ttyS0 or COM1 serial port of the VM or virtual machine scale set instance, providing access independent of the network or operating system state. The serial console can be accessed by using the Azure portal or [Azure CLI](/cli/azure/serial-console) and is allowed only for those users who have an access role of Contributor or higher to the VM or virtual machine scale set.
23+
Serial Console in the Azure portal provides access to a text-based console for virtual machines (VMs) and virtual machine scale set instances running either Linux or Windows. Serial Console connects to the ttyS0 or COM1 serial port of the VM or virtual machine scale set instance, providing access independent of the network state. The serial console can be accessed by using the Azure portal or [Azure CLI](/cli/azure/serial-console) and is allowed only for those users who have an access role of Contributor or higher to the VM or virtual machine scale set.
2424

2525
Serial Console works in the same manner for VMs and virtual machine scale set instances. In this doc, all mentions to VMs will implicitly include virtual machine scale set instances unless otherwise stated.
2626

support/entra/entra-id/toc.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,8 @@
293293
href: users-groups-entra-apis/memberof-api-returns-null-properties.md
294294
- name: Getting access denied errors (Authorization)
295295
items:
296+
- name: Add an owner to an application
297+
href: users-groups-entra-apis/add-owner-for-application-microsoft-graph.md
296298
- name: Can't modify user mail or phone number attributes
297299
href: users-groups-entra-apis/cannot-modify-user-mail-phone-attributes.md
298300
- name: Error "The identity of the calling application could not be established"
@@ -303,6 +305,8 @@
303305
href: users-groups-entra-apis/add-owner-for-application-microsoft-graph.md
304306
- name: NoPermissionsInAccessToken when calling me endpoint
305307
href: users-groups-entra-apis/error-call-me-endpoint-microsoft-graph.md
308+
- name: Tenant doesn't have premium license error when query sign-in activities
309+
href: users-groups-entra-apis/b2c-or-tenant-premium-license-sign-in-activities.md
306310
- name: Problem with using the Graph SDK - libraries
307311
items:
308312
- name: Python scripts making requests are detected as web crawlers
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
title: Tenant doesn't have premium license When You Query User Sign-in Activities By Using Microsoft Graph
3+
description: Provides solutions to the "either tenant is B2C or tenant doesn't have premium license" error when you query user sign-in activities by using Microsoft Graph
4+
ms.date: 04/25/2025
5+
ms.service: entra-id
6+
ms.author: bachoang
7+
ms.custom: sap:Getting access denied errors (Authorization)
8+
---
9+
10+
# "Neither tenant is B2C or tenant doesn't have premium license" error when you query sign-in activities
11+
12+
This article discusses the error that occurs when you make Microsoft Graph API calls that are related to user sign-in activities or user registration details.
13+
14+
## Symptoms
15+
16+
You run one of the following Microsoft Graph API calls:
17+
18+
```http
19+
GET https://graph.microsoft.com/v1.0/auditLogs/signIns
20+
21+
GET https://graph.microsoft.com/v1.0/users?$select=displayName,userPrincipalName,signInActivity
22+
23+
GET https://graph.microsoft.com/v1.0/reports/UserRegistrationDetails
24+
```
25+
26+
After you run the call, your receive an error response that resembles the following text:
27+
28+
```output
29+
'error': {
30+
'code': 'Authentication\_RequestFromNonPremiumTenantOrB2CTenant',
31+
'message': 'Neither tenant is B2C or tenant doesn't have premium license',
32+
'innerError': {
33+
'date': '2021-03-04T07:53:51',
34+
'request-id': 'a0a074e6-xxx-c511669fa420',
35+
'client-request-id': 'a0a074e6-xxx-c511669fa420'
36+
}
37+
}
38+
```
39+
40+
## Solution
41+
42+
### Scenario 1: Query user sign-in activities
43+
44+
1. Make sure that the target tenant has an Entra ID Premium P1 or P2 license. In the Azure portal, go to **Microsoft Entra ID**, select **Overview**, and then check the **License** value. For more information, see [Sign up for Microsoft Entra ID P1 or P2 editions](/entra/fundamentals/get-started-premium).
45+
1. Verify that the Microsoft Graph Access Token was granted the `AuditLog.Read.All` and `Directory.Read.All` permissions.
46+
47+
### Scenario 2: Query credential user registration details
48+
49+
1. Make sure that the target tenant has an Entra ID Premium P1 or P2 license.
50+
1. Verify that the Microsoft Graph Access Token was granted the `Reports.Read.All` permission.
51+
1. Verify that the authenticating user or the service principle of the application is in one of the following required administrative roles:
52+
- Reports Reader
53+
- Security Reader
54+
- Security Administrator
55+
- Global Reader
56+
- Global Administrator
57+
58+
## More information
59+
60+
If an application is configured by using only the **AuditLog.Read.All** permission, this error might occur intermittently. This is expected behavior because the **Directory.Read.All** permission is required to retrieve tenant licensing information if it isn't already cached. To avoid this error, make sure that both permissions are included.

support/sql/database-engine/availability-groups/listener-connection-times-out.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Listener connection times out
33
description: This article provides resolutions for the timeout error that occurs when you connect to a SQL Server Always On availability group listener in a multi-subnet environment.
4-
ms.date: 08/04/2020
4+
ms.date: 05/06/2025
55
ms.custom: sap:Always On Availability Groups (AG)
66
ms.reviewer: ramakoni
77
---
@@ -10,19 +10,19 @@ ms.reviewer: ramakoni
1010

1111
This article helps you resolve the problem that occurs when you connect to a SQL Server Always On availability group listener in a multi-subnet environment.
1212

13-
_Original product version:_ &nbsp; SQL Server 2012 Developer, SQL Server 2012 Enterprise, SQL Server 2012 Express, SQL Server 2012 Standard, SQL Server 2012 Web, SQL Server 2012 Enterprise Core
13+
_Original product version:_ &nbsp; SQL Server 2012 and later versions
1414
_Original KB number:_ &nbsp; 2792139
1515

1616
## Symptoms
1717

18-
After you configure the availability group listener for an Always On Availability Group in Microsoft SQL Server 2012, you may be unable to ping the listener or connect to it from an application.
18+
After you configure the availability group listener for an Always On Availability Group in Microsoft SQL Server, you might be unable to ping the listener or connect to it from an application.
1919

20-
For example, when you try to connect to a listener of SQL Server by using `SQLCMD`, the connection times out. Additionally, you receive an error message that resembles the following:
20+
For example, when you try to connect to a listener of SQL Server by using `SQLCMD`, the connection times out. Additionally, you receive an error message that resembles the following one:
2121

2222
> Sqlcmd: Error: Microsoft SQL Native Client: Login timeout expired.
2323
2424
> [!NOTE]
25-
> These symptoms are usually intermittent, or related to failover of the availability group resource.
25+
> These symptoms are intermittent, or related to failover of the availability group resource.
2626
2727
The following screenshot shows an example of what occurs when you try to ping the listener for the availability of `aglisten`. The screenshot also shows a successful connection to SQL Server by using the `SQLCMD` command when you include the multi-subnet failover parameter `-M`.
2828

@@ -33,20 +33,20 @@ The following screenshot shows an example of what occurs when you try to ping th
3333
3434
## Cause
3535

36-
This issue occurs because your application either uses a legacy data provider that does not support the new `MultiSubnetFailover` parameter, or isn't configured to use this parameter.
36+
This issue occurs because your application either uses a legacy data provider that doesn't support the new `MultiSubnetFailover` parameter, or isn't configured to use this parameter.
3737

38-
This parameter is supported in newer versions of the SQLClient driver that is included with the .NET Framework 4 and with later versions of the .NET Framework, and is back ported to the .NET Framework 3.5.
38+
This parameter is supported in newer versions of the SQLClient driver that is included with the .NET Framework 4 and later versions of the .NET Framework, and is back ported to the .NET Framework 3.5.
3939

4040
> [!NOTE]
41-
> The `PING` command is a simple connectivity testing tool that does not support the new parameter.
41+
> The `PING` command is a simple connectivity testing tool that doesn't support the new parameter.
4242
4343
## Resolution
4444

4545
You can use one of the following resolutions as applicable to your case:
4646

4747
- To resolve this situation when the data providers support the `MultiSubNetFailover` parameter, add the `MultiSubNetFailover` parameter to your connection string, and set it to **true**.
4848

49-
- To resolve this situation when your legacy clients cannot use the `MultiSubnetFailover` property, you can change the listener's `RegisterAllProvidersIP` value to **0**. To do this, run the following command from the Windows PowerShell command-line interface:
49+
- To resolve this situation when your legacy clients can't use the `MultiSubnetFailover` property, you can change the listener's `RegisterAllProvidersIP` value to **0** by running the following command from the Windows PowerShell command-line interface:
5050

5151
```powershell
5252
Import-Module FailoverClusters
@@ -56,22 +56,22 @@ You can use one of the following resolutions as applicable to your case:
5656
:::image type="content" source="media/listener-connection-times-out/change-listener-registeraiiprovidersip.png" alt-text="Screenshot shows the output of an example of the command in Windows PowerShell.":::
5757
5858
> [!NOTE]
59-
> After you set the `RegisterAllProvidersIP` value to **0**, the current online IP address must be un-registered from the DNS server and the offline IP address must be registered to the DNS server when a failover occurs. This may cause a connection delay for the next failover.
59+
> After you set the `RegisterAllProvidersIP` value to **0**, the current online IP address must be unregistered from the DNS server and the offline IP address must be registered to the DNS server when a failover occurs. This might cause a connection delay for the next failover.
6060
6161
## More information
6262
63-
When you try to connect to a listener that is defined on more than one subnet, the operation may fail if the client driver tries to connect by using one of the listener's offline IP addresses.
63+
When you try to connect to a listener that is defined on more than one subnet, the operation might fail if the client driver tries to connect by using one of the listener's offline IP addresses.
6464
6565
When a listener is created, an IP address is designated for each unique subnet that an availability group replica is hosted in. For example, if a listener is created for an availability group that has replicas that exist in two subnets, two IP addresses are defined in the listener. One address is used by an application that can connect to an instance of SQL Server in subnet 1, and the other address is used when an application connects to an instance of SQL Server in subnet 2.
6666
67-
Behind the scenes, the listener creates a Windows cluster Client Access Point resource. One of its properties is `RegisterAllProvidersIP`. When a listener is created, this is set to **1**, and all the listener's IP addresses are registered in DNS server. This configuration provides reduced reconnection time for clients.
67+
Behind the scenes, the listener creates a Windows cluster Client Access Point resource. One of its properties is `RegisterAllProvidersIP`. When a listener is created, this property is set to **1**, and all the listener's IP addresses are registered in DNS server. This configuration provides reduced reconnection time for clients.
6868
69-
Because the DNS record contains all the IP addresses, a client that tries to connect to the listener must know how to handle this situation. The `MultiSubnetFailover` parameter enables the client driver to try connections in parallel to all the listener's IP addresses. Without the `MultiSubnetFailover` parameter, the client driver will try to connect sequentially to all IP addresses for the listener. Sequential connections may cause a long logon time or logon time-outs.
69+
Because the DNS record contains all the IP addresses, a client that tries to connect to the listener must know how to handle this situation. The `MultiSubnetFailover` parameter enables the client driver to try connections in parallel to all the listener's IP addresses. Without the `MultiSubnetFailover` parameter, the client driver will try to connect sequentially to all IP addresses for the listener. Sequential connections might cause a long logon time or logon time-outs.
7070
7171
> [!NOTE]
7272
> The problem that is mentioned in this article also affects SharePoint environments that are configured to use an Always On Availability Group's secondary read-only replica. To resolve this issue, perform whichever of the following actions applies to your version of SharePoint:
7373
74-
- For SharePoint 2007: This is classified as a legacy application. Therefore, SharePoint 2007 cannot be configured to use the `MultiSubnetFailover` parameter. Instead, you have to use the Windows PowerShell command that is described in the [Resolution](#resolution) section.
74+
- For SharePoint 2007: This is classified as a legacy application. Therefore, SharePoint 2007 can't be configured to use the `MultiSubnetFailover` parameter. Instead, you have to use the Windows PowerShell command that is described in the [Resolution](#resolution) section.
7575
7676
- For SharePoint 2010: Cumulative update packages are now available that add support for the `MultiSubnetFailover` parameter. For more information about the update packages, see the following article:
7777

0 commit comments

Comments
 (0)