text:
Support 'UseDevelopmentStorage=true'

Is your feature request related to a problem? Please describe.
I'm working to upgrade our team from the old azure storage cpp libraries since it has been EOL'd. One issue adopting this new sdk is that it doesn't appear to support the 'UseDevelopmentStorage=true' connection string.
I find this feature really useful and i'm sure this work would unblock others looking to adopt this new sdk.
Describe the solution you'd like
Support the legacy 'usedevelopmentstorage=true' configuration for connection strings.
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Description Added
[x] Expected solution specified

Hi @twhiting , usedevelopmentstorage=true is just an alias of storage account for Azurite emulator, you can use below code instead. They are equivalent.
auto credential = std::make_shared<Azure::Storage::StorageSharedKeyCredential>(
      "devstoreaccount1",
      "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==");
auto serviceClient = BlobServiceClient("http://127.0.0.1:10000", credential);

@Jinming-Hu hi!
I understand these are equivalent, but it did take me quite a while to understand. I'm sure that others will run into this problem like I did when upgrading from the old azure-storage-cpp sdk (https://github.com/Azure/azure-storage-cpp)

Straight upgrade from the old deprecated sdk will not work, as the UseDevelopmentStorage=true alias does not work for this sdk. This is not immediately apparent anywhere.
Azurite docs show a C# example where it is implied that UseDevelopmentStorage=true works with a BlobContainerClient. https://learn.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string#configure-a-connection-string-for-azurite
It appears that this is fragmented between the various versions of the SDKs, C# sdk supports it, C++ does not, Python wants it, Rust has it, etc.

Thanks for your feedback. We'll consider adding it.
Before it's available in C++ SDK, you could use the equivalent code above to unblock yourself.

Sounds good, thanks!

authors: Jinming-Hu twhiting

repo: Azure/azure-sdk-for-cpp


text:
Add succeeded() condition to dependent jobs

Without checking for succeeded() these jobs will run regardless of the success or failure of the TagRepository step.

Closing in favor of releasing template from a branch off the main repo instead of this fork. Releases from the main repo succeed. Releases from forks break in at least one place.

Superseded by https://github.com/Azure/azure-sdk-for-cpp/pull/1605

source: gharchive/pull-request

authors: ahsonkhan danieljurek

license: MIT

license_type: permissive

license_source: github-api


text:
Re-enable agent OS verification

This PR re-enables agent OS verification and is dependent on this PR.
https://github.com/Azure/azure-sdk-tools/pull/1371

/azp run cpp - core - ci

/azp run cpp - core - ci


text:
azcore.JoinPaths strips query params

azcore.JoinPaths(rootURLWithQueryParams, segment1, segment2)

The query params in rootURLWithQueryParams will be removed.

Fixed

source: gharchive/issue

repo: Azure/azure-sdk-for-go


text:
Use a token to connect to a container

I'm trying to connect to a blobstorage using a token that I get like this:
cred, err := azidentity.NewClientSecretCredential(tenantID, clientID, clientSecret, nil)
I can use this function and see that return me a token:
policy := policy.TokenRequestOptions{ 		Scopes: []string{clientID + "/.default"}, } resp, err := ced.GetToken(context.Background(), policy)
In the program I call to this function
conn, err := azblob.NewContainerClient(containerURL, cred, nil)
When I try to write using this connection to the container I have the follow error:
===== RESPONSE ERROR (ErrorCode=AuthorizationPermissionMismatch) ===== Description=This request is not authorized to perform this operation using this permission. RequestId:19f268a9-301e-0027-28c1-06fd6a000000 Time:2022-01-11T08:03:07.6493384Z, Details: (none)
The devops tell me that the problem is I have to get the token using scopes, but what I see in NewContainerClient is that use this constant:
const tokenScope untyped string = "https://storage.azure.com/.default"
There is any way to pass scopes to NewContainerClient or I should use other way?

Scopes are handled internally by clients, and https://storage.azure.com/.default is the only one for Azure Storage. I'm not so familiar with Storage (I'll assign someone who is) but that error suggests the problem is with authorization, that is to say the service principal isn't authorized to perform the operation.

@Kowiste could you please make sure that you've assigned the right permissions to the service principal on the account? e.g. Storage Blob Data Contributor

Thanks @zezha-msft, I just check with the dev ops, we change the role for the app to contributor but it still give the same error. I can have a token with  azidentity.NewClientSecretCredential . I use it  in azblob.NewContainerClient and with the client when try to write I have the same error.

@Kowiste I don't think the Contributor is the correct one. Please try "Storage Blob Data Contributor" instead.
Useful reading: https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad-app?tabs=dotnet#assign-a-role-to-an-azure-ad-security-principal

authors: Kowiste chlowell zezha-msft


text:
disable ShareDeleteRetentionPolicy for standard file share doe not work

Bug Report

import path of package in question: services/storage/mgmt/2021-09-01/storage
SDK version: v67.0.0

Specify the exact commit if possible; one way to get this is the REVISION
column output by dep status "github.com/Azure/azure-sdk-for-go.

output of go version

go version go1.18.3 linux/amd64

What happened?

We are trying to use go sdk to disable ShareDeleteRetentionPolicy for standard file share. The following code only works with premium file share, while it does not work with standard file share:
Error is like this:
storage.FileServicesClient#SetServiceProperties: Failure responding to request: StatusCode=400 -- Original Error: autorest/azure: Service returned an error. Status=400 Code="InvalidXmlDocument" Message="XML specified is not syntactically valid.\nRequestId:34a1905c-a01a-0076-4534-daa16d000000\nTime:2022-10-07T10:06:15.7468662Z"

Go code snippet to disable ShareDeleteRetentionPolicy

            prop, err := az.FileClient.GetServiceProperties(resourceGroup, accountName)
            if err != nil {
                return "", "", err
            }
            if prop.FileServicePropertiesProperties == nil {
                return "", "", fmt.Errorf("FileServicePropertiesProperties of account(%s), resource group(%s) is nil", accountName, resourceGroup)
            }
            prop.FileServicePropertiesProperties.ShareDeleteRetentionPolicy = &storage.DeleteRetentionPolicy{Enabled: to.BoolPtr(false)}
            if _, err := az.FileClient.SetServiceProperties(resourceGroup, accountName, prop); err != nil {
                return "", "", err
            }

following workaround works
by setting

			prop.FileServicePropertiesProperties.ProtocolSettings = nil
			prop.FileServicePropertiesProperties.Cors = nil

			prop, err := az.FileClient.WithSubscriptionID(subsID).GetServiceProperties(ctx, resourceGroup, accountName)
			if err != nil {
				return "", "", err
			}
			if prop.FileServicePropertiesProperties == nil {
				return "", "", fmt.Errorf("FileServicePropertiesProperties of account(%s), subscription(%s), resource group(%s) is nil", accountName, subsID, resourceGroup)
			}
			prop.FileServicePropertiesProperties.ProtocolSettings = nil
			prop.FileServicePropertiesProperties.Cors = nil
			if accountOptions.DisableFileServiceDeleteRetentionPolicy {
				klog.V(2).Infof("disable FileServiceDeleteRetentionPolicy on account(%s), subscription(%s), resource group(%s)", accountName, subsID, resourceGroup)
				prop.FileServicePropertiesProperties.ShareDeleteRetentionPolicy = &storage.DeleteRetentionPolicy{Enabled: to.BoolPtr(false)}
			}

Root cause

It's due to an improper translation of an absent property between the call from the sdk to the srp layer and then srp making the call with that incorrect xml to the data plane.

As a workaround, try setting “multichannel”  property when you disable “ShareDeleteRetentionPolicy” using Go SDK.  Check if it is null or not present, then add it is “false” into the request.
You can also try removing “multichannel”  property from the request.
Alternatively, you can also skip sending the whole “protocolSettings” element if those settings are not being updated.
The problem is with translation from JSON to XML at SRP side.  “Enabled” is a nullable bool in SRP data schema, so  instead of skipping it, it is translated into    <Multichannel><Enabled d5p1:nil="true" xmlns:d5p1=[http://www.w3.org/2001/XMLSchema-instance](https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema-instance&data=05%7C01%7Cxiazhang%40microsoft.com%7Cd5658f19080546a83c8d08daad6132d0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638012930360410511%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=930n1QKTJlRRORgPM5mUUs8RFNKqAiv8bvC4pxKaEDs%3D&reserved=0) /></Multichannel> by default.
<Multichannel> can be absent in the request, but if it is present, DataPlane only expects that it must be either “true” or “false”, so request from SRP to DataPlane fails.

Works:

{
  "protocolSettings": {
    "smb": {
      "multichannel": {
        "enabled": false
      },
      "versions": null,
      "authenticationMethods": null,
      "kerberosTicketEncryption": null,
      "channelEncryption": null
    }
  },
  "cors": {
    "corsRules": []
  },
  "shareDeleteRetentionPolicy": {
    "enabled": false
  }
}

Fails:

{
  "protocolSettings": {
    "smb": {
      "multichannel": null,
      "versions": null,
      "authenticationMethods": null,
      "kerberosTicketEncryption": null,
      "channelEncryption": null
    }
  },
  "cors": {
    "corsRules": []
  },
  "shareDeleteRetentionPolicy": {
    "enabled": false
  }
}

Also works:

{
  "properties": {
    "shareDeleteRetentionPolicy": {
      "enabled":false
    }
  },
  "cors": {
    "corsRules": []
  }
}

What did you expect or want to happen?

disable ShareDeleteRetentionPolicy for standard file share works

How can we reproduce it?
Anything we should know about your environment.

It should be a service problem. When calling GetServiceProperties, the response does return an empty smb without any default value. When doing update, we have no context how to handle the property not going to change and SDK will marshal them as it received.
{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"id":"/subscriptions/subid/resourceGroups/chenjieshitest/providers/Microsoft.Storage/storageAccounts/chenjieshistorage/fileServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/fileServices","properties":{"protocolSettings":{"smb":{}},"cors":{"corsRules":[]},"shareDeleteRetentionPolicy":{"enabled":true,"days":7}}}

Non customer-reported issue.
@xgithubtriage Could you please look into this once you get a chance ?

We have retired support for Azure SDK for Golang libraries which do not conform to our current Azure SDK guidelines (see announcement). Please migrate to the latest version according to the migration guide. If you could still repo this problem, please submit a support ticket in Azure directly.

authors: andyzhangx navba-MSFT tadelesh


text:
Expose github.com/Azure/azure-sdk-for-go/sdk/internal/log package so that custom policy can print log

Feature Request

In current design, custom policy which is out of github.com/Azure/azure-sdk-for-go/sdk module cannot import log package.
It is hard to debug policy without any log.
I'm wondering if we could expose this package for custom policy. Thanks!

I want to invoke log.write function in custom policy to print some info. It would be great if log package can be exposed to public.

Thanks for clarifying.
Can we get more info about your scenario? The SDK's logging facility wasn't meant to be general-purpose, but for SDK authors.

A throttled policy was implemented in cloud provider. https://github.com/kubernetes-sigs/cloud-provider-azure/blob/master/pkg/azclient/policy/ratelimit/flowcontrol/throttle.go And I just want to print some logs. With these log entries, I can confirm that the request was not sent.

authors: MartinForReal jhendrixMSFT


text:
[AutoPR monitor/resource-manager] Minor Updates - description text

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/2998

This PR has been merged into https://github.com/Azure/azure-sdk-for-go/pull/1774


text:
[Release] sdk/resourcemanager/nginx/armnginx/2.0.0

https://github.com/Azure/sdk-release-request/issues/3266

Breaking changes are from PR and have been approved. @jhendrixMSFT @JeffreyRichter Please help to approve the major version release.

@tadelesh could you please help merge this RP? Thanks.

@tadelesh could you please help merge this RP? Thanks.

We'll merge and finish the release today.

authors: azure-sdk limingu tadelesh


text:
[JimBot] Remove CXP Attention

Removing config for the dead CXP Attention rule

/check-enforcer override


text:
Azure Cosmos SDK - Implementation of Open Telemetry

Implementation of Open Telemetry based on Logging extension and configuration of Cosmos SDK
Integration of CosmosDiagnostics with OpenTelemetry
Allowing application developers to provide their OpenTelemetry configuration - to filter out what to emit and what to skip.
Currently in design phase - whether to follow CosmosDiagnosticsHandler approach, or come up with something new.

This is done.

repo: Azure/azure-sdk-for-java


text:
Error Occurs When Introducing azure-identity: org.eclipse.jetty.util.MultiException: Multiple exceptions

Hello, I'd like to inquire about an issue I'm facing. When integrating with Microsoft International version of the email service, I need to include two dependencies in my project:

com.microsoft.graph
microsoft-graph
5.80.0

com.azure
azure-identity
1.2.5

My project is a Spring project, not a Spring Boot project, and it uses Jetty as the server with Jetty version 9.2.9.v20150224. I'm running it on Java version 8. However, I'm encountering an error when I try to start the project:
org.eclipse.jetty.util.MultiException: Multiple exceptions
at org.eclipse.jetty.annotations.AnnotationConfiguration.scanForAnnotations (AnnotationConfiguration.java:536)
at org.eclipse.jetty.annotations.AnnotationConfiguration.configure (AnnotationConfiguration.java:447)
at org.eclipse.jetty.webapp.WebAppContext.configure (WebAppContext.java:479)
at org.eclipse.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1337)
at org.eclipse.jetty.server.handler.ContextHandler.doStart (ContextHandler.java:741)
at org.eclipse.jetty.webapp.WebAppContext.doStart (WebAppContext.java:505)
at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart (JettyWebAppContext.java:365)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:132)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:61)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart (ContextHandlerCollection.java:163)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:132)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:61)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:132)
at org.eclipse.jetty.server.Server.start (Server.java:387)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:61)
at org.eclipse.jetty.server.Server.doStart (Server.java:354)
at org.eclipse.jetty.maven.plugin.JettyServer.doStart (JettyServer.java:73)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68)
at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty (AbstractJettyMojo.java:534)
at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute (AbstractJettyMojo.java:357)
at org.eclipse.jetty.maven.plugin.JettyRunWarExplodedMojo.execute (JettyRunWarExplodedMojo.java:69)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
I've ruled out any issues with com.microsoft.graph. Could it be that azure-identity has specific requirements regarding the Jetty version?

After removing the dependency, the program can be started normally without any errors.

com.azure
azure-identity
1.2.5

Hi @lxyxjl, the version of azure-identity being included is very old and doesn't align with the Azure SDK dependencies being used in microsoft-graph 5.80.0, could you upgrade azure-identity to 1.11.0 and see if that works.

Hi @lxyxjl, the version of azure-identity being included is very old and doesn't align with the Azure SDK dependencies being used in microsoft-graph 5.80.0, could you upgrade azure-identity to 1.11.0 and see if that works.

Adding issue-addressed label so the bot will auto-close the issue.
Feel free to reactivate with more details if this does not resolve the issue with the project.

I switched the azure-identity version to 1.11.0, but it did not solve the problem, and the same error continues to occur. I have tried switching to several other versions that are used more frequently, but the same error persists. Because I can't change the jetty version while it is running in my production environment, I am unable to try switching to other versions of jetty.

你好@lxyxjl，包含的版本azure-identity非常旧，与 中使用的 Azure SDK 依赖项不一致microsoft-graph 5.80.0，您可以升级azure-identity到1.11.0并看看是否有效。

I switched the azure-identity version to 1.11.0, but it did not solve the problem, and the same error continues to occur. I have tried switching to several other versions that are used more frequently, but the same error persists. Because I can't change the jetty version while it is running in my production environment, I am unable to try switching to other versions of jetty.

Given azure-identity doesn't include a dependency on Jetty, could you provide an mvn dependency:tree of your application as the stack trace points to a generic failure of Jetty to start up.

mvn dependency:tree

[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ chatprofile ---
[INFO] com.yichat:chatprofile:war:1.0
[INFO] +- com.yichat:chatlib:jar:1.0:compile
[INFO] |  +- com.belerweb:pinyin4j:jar:2.5.1:compile
[INFO] |  +- commons-lang:commons-lang:jar:2.6:compile
[INFO] |  +- org.slf4j:slf4j-api:jar:1.7.10:compile
[INFO] |  +- org.scala-lang:scala-library:jar:2.12.6:compile
[INFO] |  +- com.yammer.metrics:metrics-core:jar:2.2.0:compile
[INFO] |  +- com.101tec:zkclient:jar:0.6:compile
[INFO] |  +- com.google.code.gson:gson:jar:2.6.2:compile
[INFO] |  +- net.sf.xss-html-filter:xss-html-filter:jar:1.5:compile
[INFO] |  +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] |  +- org.apache.httpcomponents:httpcore:jar:4.4.6:compile
[INFO] |  +- org.apache.httpcomponents:httpclient-cache:jar:4.5.2:compile
[INFO] |  +- com.drewnoakes:metadata-extractor:jar:2.11.0:compile
[INFO] |  |  - com.adobe.xmp:xmpcore:jar:5.1.3:compile
[INFO] |  +- com.zaxxer:HikariCP-java7:jar:2.4.13:compile
[INFO] |  +- com.google.guava:guava:jar:20.0:compile
[INFO] |  +- org.apache.tika:tika-core:jar:1.10:compile
[INFO] |  +- javazoom:jlayer:jar:1.0.1:compile
[INFO] |  +- com.sun.mail:javax.mail:jar:1.6.2:compile
[INFO] |  +- com.googlecode.htmlcompressor:htmlcompressor:jar:1.5.2:compile
[INFO] |  - com.alibaba.nls:nls-sdk-common:jar:2.1.6:compile
[INFO] |     +- io.netty:netty-handler:jar:4.1.17.Final:compile
[INFO] |     - io.netty:netty-codec-http:jar:4.1.17.Final:compile
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:compile
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.7.10:runtime
[INFO] +- org.springframework:spring-test:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-context:jar:4.1.6.RELEASE:compile
[INFO] |  +- org.springframework:spring-aop:jar:4.1.6.RELEASE:compile
[INFO] |  - org.springframework:spring-expression:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-context-support:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-core:jar:4.1.6.RELEASE:compile
[INFO] +- c3p0:c3p0:jar:0.9.1.1:compile
[INFO] +- org.apache.commons:commons-email:jar:1.4:compile
[INFO] |  - javax.activation:activation:jar:1.1.1:compile
[INFO] +- commons-dbcp:commons-dbcp:jar:1.4:compile
[INFO] +- org.springframework:spring-orm:jar:4.1.6.RELEASE:compile
[INFO] |  - org.springframework:spring-tx:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-beans:jar:4.1.6.RELEASE:compile
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.6:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile
[INFO] |  - com.fasterxml.jackson.core:jackson-core:jar:2.9.6:compile
[INFO] +- org.springframework:spring-jdbc:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-core:jar:4.0.1.RELEASE:compile
[INFO] |  - aopalliance:aopalliance:jar:1.0:compile
[INFO] +- org.springframework.security:spring-security-web:jar:4.0.1.RELEASE:compile
[INFO] |  - org.springframework:spring-web:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-config:jar:4.0.1.RELEASE:compile
[INFO] +- org.mybatis:mybatis:jar:3.3.0:compile
[INFO] +- org.mybatis:mybatis-spring:jar:1.2.3:compile
[INFO] +- mysql:mysql-connector-java:jar:5.1.38:compile
[INFO] +- org.javassist:javassist:jar:3.19.0-GA:compile
[INFO] +- ognl:ognl:jar:3.0.11:compile
[INFO] |  - javassist:javassist:jar:3.11.0.GA:compile
[INFO] +- cglib:cglib:jar:3.1:compile
[INFO] |  - org.ow2.asm:asm:jar:4.2:compile
[INFO] +- log4j:log4j:jar:1.2.12:compile
[INFO] +- net.sf.json-lib:json-lib:jar:jdk15:2.3:compile
[INFO] |  +- commons-beanutils:commons-beanutils:jar:1.8.0:compile
[INFO] |  +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] |  - net.sf.ezmorph:ezmorph:jar:1.0.6:compile
[INFO] +- redis.clients:jedis:jar:2.6.2:compile
[INFO] |  - org.apache.commons:commons-pool2:jar:2.0:compile
[INFO] +- commons-logging:commons-logging:jar:1.2:compile
[INFO] +- dom4j:dom4j:jar:1.6.1:compile
[INFO] |  - xml-apis:xml-apis:jar:1.4.01:compile
[INFO] +- org.quartz-scheduler:quartz:jar:2.2.1:compile
[INFO] +- com.google.zxing:core:jar:3.2.0:compile
[INFO] +- com.google.zxing:javase:jar:3.2.0:compile
[INFO] +- com.github.axet:kaptcha:jar:0.0.9:compile
[INFO] |  - com.jhlabs:filters:jar:2.0.235:compile
[INFO] +- com.yichat:fastdfs-client:jar:1.20:compile
[INFO] +- commons-fileupload:commons-fileupload:jar:1.3.1:compile
[INFO] +- commons-io:commons-io:jar:2.4:compile
[INFO] +- commons-codec:commons-codec:jar:1.10:compile
[INFO] +- junit:junit:jar:4.12:test
[INFO] |  - org.hamcrest:hamcrest-core:jar:1.3:compile
[INFO] +- org.springframework.session:spring-session-data-redis:pom:1.1.1.RELEASE:compile
[INFO] |  +- org.springframework.data:spring-data-redis:jar:1.6.2.RELEASE:compile
[INFO] |  - org.springframework.session:spring-session:jar:1.1.1.RELEASE:compile
[INFO] +- org.springframework:spring-webmvc:jar:4.1.6.RELEASE:compile
[INFO] +- org.eclipse.jetty:jetty-util-ajax:jar:9.2.9.v20150224:compile
[INFO] |  - org.eclipse.jetty:jetty-util:jar:9.2.9.v20150224:compile
[INFO] +- org.apache.zookeeper:zookeeper:jar:3.4.6:compile
[INFO] |  +- jline:jline:jar:0.9.94:compile
[INFO] |  - io.netty:netty:jar:3.7.0.Final:compile
[INFO] +- org.apache.thrift:libthrift:jar:0.9.3:compile
[INFO] +- org.apache.curator:curator-recipes:jar:4.0.1:compile
[INFO] |  - org.apache.curator:curator-framework:jar:4.0.1:compile
[INFO] |     - org.apache.curator:curator-client:jar:4.0.1:compile
[INFO] +- commons-pool:commons-pool:jar:1.6:compile
[INFO] +- org.apache.poi:poi:jar:4.1.0:compile
[INFO] |  +- org.apache.commons:commons-collections4:jar:4.3:compile
[INFO] |  - org.apache.commons:commons-math3:jar:3.6.1:compile
[INFO] +- org.apache.poi:poi-ooxml:jar:4.1.0:compile
[INFO] |  +- org.apache.poi:poi-ooxml-schemas:jar:4.1.0:compile
[INFO] |  |  - org.apache.xmlbeans:xmlbeans:jar:3.1.0:compile
[INFO] |  +- org.apache.commons:commons-compress:jar:1.18:compile
[INFO] |  - com.github.virtuald:curvesapi:jar:1.06:compile
[INFO] +- net.lingala.zip4j:zip4j:jar:1.3.2:compile
[INFO] +- com.thoughtworks.xstream:xstream:jar:1.4.8:compile
[INFO] |  +- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] |  - xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] +- org.apache.httpcomponents:httpmime:jar:4.5.2:compile
[INFO] +- org.apache.httpcomponents:httpclient:jar:4.5.2:compile
[INFO] +- com.squareup.okhttp3:okhttp:jar:3.3.1:compile
[INFO] |  - com.squareup.okio:okio:jar:1.8.0:compile
[INFO] +- com.weibo:motan-core:jar:1.0.0:compile
[INFO] |  +- com.caucho:hessian:jar:4.0.38:compile
[INFO] |  +- com.codahale.metrics:metrics-core:jar:3.0.1:compile
[INFO] |  +- com.squareup:javapoet:jar:1.8.0:compile
[INFO] |  - org.apache.commons:commons-lang3:jar:3.1:compile
[INFO] +- com.weibo:motan-transport-netty:jar:1.0.0:compile
[INFO] |  - org.jboss.netty:netty:jar:3.2.5.Final:compile
[INFO] +- com.weibo:motan-springsupport:jar:1.0.0:compile
[INFO] +- com.weibo:motan-registry-zookeeper:jar:1.0.0:compile
[INFO] +- org.apache.kafka:kafka-clients:jar:1.0.0:compile
[INFO] |  +- org.lz4:lz4-java:jar:1.4:compile
[INFO] |  - org.xerial.snappy:snappy-java:jar:1.1.4:compile
[INFO] +- org.apache.lucene:lucene-core:jar:5.5.0:compile
[INFO] +- org.hibernate:hibernate-validator:jar:5.4.0.Final:compile
[INFO] |  +- org.jboss.logging:jboss-logging:jar:3.3.0.Final:compile
[INFO] |  - com.fasterxml:classmate:jar:1.3.1:compile
[INFO] +- org.glassfish:javax.el:jar:3.0.1-b08:compile
[INFO] +- joda-time:joda-time:jar:2.3:compile
[INFO] +- org.im4java:im4java:jar:1.4.0:compile
[INFO] +- org.aspectj:aspectjrt:jar:1.8.9:compile
[INFO] +- org.aspectj:aspectjweaver:jar:1.8.9:compile
[INFO] +- com.github.fernandospr:javapns-jdk16:jar:2.3.1:compile
[INFO] +- com.aliyun.oss:aliyun-sdk-oss:jar:2.7.0:compile
[INFO] |  - org.jdom:jdom:jar:1.1:compile
[INFO] +- com.aliyun:aliyun-java-sdk-sts:jar:2.1.6:compile
[INFO] +- com.aliyun:aliyun-java-sdk-core:jar:4.0.3:compile
[INFO] |  +- javax.xml.bind:jaxb-api:jar:2.1:compile
[INFO] |  |  - javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] |  +- com.sun.xml.bind:jaxb-core:jar:2.1.14:compile
[INFO] |  - com.sun.xml.bind:jaxb-impl:jar:2.1:compile
[INFO] +- com.aliyun:aliyun-java-sdk-dm:jar:3.3.1:compile
[INFO] +- org.jsoup:jsoup:jar:1.10.3:compile
[INFO] +- com.alibaba:fastjson:jar:1.2.47:compile
[INFO] +- com.jayway.jsonpath:json-path-assert:jar:2.4.0:compile
[INFO] |  +- com.jayway.jsonpath:json-path:jar:2.4.0:compile
[INFO] |  |  - net.minidev:json-smart:jar:2.3:compile
[INFO] |  |     - net.minidev:accessors-smart:jar:1.2:compile
[INFO] |  - org.hamcrest:hamcrest-library:jar:1.3:compile
[INFO] +- org.projectlombok:lombok:jar:1.16.8:compile
[INFO] +- com.qiniu:qiniu-java-sdk:jar:7.2.23:compile
[INFO] +- com.qiniu:happy-dns-java:jar:0.1.6:compile
[INFO] +- com.zaxxer:HikariCP:jar:3.3.1:compile
[INFO] +- net.coobird:thumbnailator:jar:0.4.8:compile
[INFO] +- ru.yandex.clickhouse:clickhouse-jdbc:jar:0.2.2:compile
[INFO] |  - net.jpountz.lz4:lz4:jar:1.3.0:compile
[INFO] +- org.lionsoul:ip2region:jar:1.7.2:compile
[INFO] +- org.ansj:ansj_seg:jar:5.1.1:compile
[INFO] |  - org.nlpcn:nlp-lang:jar:1.7.2:compile
[INFO] - org.ansj:ansj_lucene5_plug:jar:5.1.1.0:compile
I have tried to eliminate conflicting dependencies based on the mvn dependency:tree. After removing all conflicting dependencies, the same error still occurs. I suspect that azure-identity might have some indirect dependencies that conflict with my version of jetty, which is 9.2.9.v20150224.

另外，azure-identity不包含对 Jetty 的依赖，您能否提供mvn dependency:tree您的应用程序，因为堆栈跟踪指向 Jetty 启动的一般失败。

[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ chatprofile ---
[INFO] com.yichat:chatprofile:war:1.0
[INFO] +- com.yichat:chatlib:jar:1.0:compile
[INFO] | +- com.belerweb:pinyin4j:jar:2.5.1:compile
[INFO] | +- commons-lang:commons-lang:jar:2.6:compile
[INFO] | +- org.slf4j:slf4j-api:jar:1.7.10:compile
[INFO] | +- org.scala-lang:scala-library:jar:2.12.6:compile
[INFO] | +- com.yammer.metrics:metrics-core:jar:2.2.0:compile
[INFO] | +- com.101tec:zkclient:jar:0.6:compile
[INFO] | +- com.google.code.gson:gson:jar:2.6.2:compile
[INFO] | +- net.sf.xss-html-filter:xss-html-filter:jar:1.5:compile
[INFO] | +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] | +- org.apache.httpcomponents:httpcore:jar:4.4.6:compile
[INFO] | +- org.apache.httpcomponents:httpclient-cache:jar:4.5.2:compile
[INFO] | +- com.drewnoakes:metadata-extractor:jar:2.11.0:compile
[INFO] | | - com.adobe.xmp:xmpcore:jar:5.1.3:compile
[INFO] | +- com.zaxxer:HikariCP-java7:jar:2.4.13:compile
[INFO] | +- com.google.guava:guava:jar:20.0:compile
[INFO] | +- org.apache.tika:tika-core:jar:1.10:compile
[INFO] | +- javazoom:jlayer:jar:1.0.1:compile
[INFO] | +- com.sun.mail:javax.mail:jar:1.6.2:compile
[INFO] | +- com.googlecode.htmlcompressor:htmlcompressor:jar:1.5.2:compile
[INFO] | - com.alibaba.nls:nls-sdk-common:jar:2.1.6:compile
[INFO] | +- io.netty:netty-handler:jar:4.1.17.Final:compile
[INFO] | - io.netty:netty-codec-http:jar:4.1.17.Final:compile
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:compile
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.7.10:runtime
[INFO] +- org.springframework:spring-test:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-context:jar:4.1.6.RELEASE:compile
[INFO] | +- org.springframework:spring-aop:jar:4.1.6.RELEASE:compile
[INFO] | - org.springframework:spring-expression:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-context-support:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-core:jar:4.1.6.RELEASE:compile
[INFO] +- c3p0:c3p0:jar:0.9.1.1:compile
[INFO] +- org.apache.commons:commons-email:jar:1.4:compile
[INFO] | - javax.activation:activation:jar:1.1.1:compile
[INFO] +- commons-dbcp:commons-dbcp:jar:1.4:compile
[INFO] +- org.springframework:spring-orm:jar:4.1.6.RELEASE:compile
[INFO] | - org.springframework:spring-tx:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-beans:jar:4.1.6.RELEASE:compile
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.6:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile
[INFO] | - com.fasterxml.jackson.core:jackson-core:jar:2.9.6:compile
[INFO] +- org.springframework:spring-jdbc:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-core:jar:4.0.1.RELEASE:compile
[INFO] | - aopalliance:aopalliance:jar:1.0:compile
[INFO] +- org.springframework.security:spring-security-web:jar:4.0.1.RELEASE:compile
[INFO] | - org.springframework:spring-web:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-config:jar:4.0.1.RELEASE:compile
[INFO] +- org.mybatis:mybatis:jar:3.3.0:compile
[INFO] +- org.mybatis:mybatis-spring:jar:1.2.3:compile
[INFO] +- mysql:mysql-connector-java:jar:5.1.38:compile
[INFO] +- org.javassist:javassist:jar:3.19.0-GA:compile
[INFO] +- ognl:ognl:jar:3.0.11:compile
[INFO] | - javassist:javassist:jar:3.11.0.GA:compile
[INFO] +- cglib:cglib:jar:3.1:compile
[INFO] | - org.ow2.asm:asm:jar:4.2:compile
[INFO] +- log4j:log4j:jar:1.2.12:compile
[INFO] +- net.sf.json-lib:json-lib:jar:jdk15:2.3:compile
[INFO] | +- commons-beanutils:commons-beanutils:jar:1.8.0:compile
[INFO] | +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] | - net.sf.ezmorph:ezmorph:jar:1.0.6:compile
[INFO] +- redis.clients:jedis:jar:2.6.2:compile
[INFO] | - org.apache.commons:commons-pool2:jar:2.0:compile
[INFO] +- commons-logging:commons-logging:jar:1.2:compile
[INFO] +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | - xml-apis:xml-apis:jar:1.4.01:compile
[INFO] +- org.quartz-scheduler:quartz:jar:2.2.1:compile
[INFO] +- com.google.zxing:core:jar:3.2.0:compile
[INFO] +- com.google.zxing:javase:jar:3.2.0:compile
[INFO] +- com.github.axet:kaptcha:jar:0.0.9:compile
[INFO] | - com.jhlabs:filters:jar:2.0.235:compile
[INFO] +- com.yichat:fastdfs-client:jar:1.20:compile
[INFO] +- commons-fileupload:commons-fileupload:jar:1.3.1:compile
[INFO] +- commons-io:commons-io:jar:2.4:compile
[INFO] +- commons-codec:commons-codec:jar:1.10:compile
[INFO] +- junit:junit:jar:4.12:test
[INFO] | - org.hamcrest:hamcrest-core:jar:1.3:compile
[INFO] +- org.springframework.session:spring-session-data-redis:pom:1.1.1.RELEASE:compile
[INFO] | +- org.springframework.data:spring-data-redis:jar:1.6.2.RELEASE:compile
[INFO] | - org.springframework.session:spring-session:jar:1.1.1.RELEASE:compile
[INFO] +- org.springframework:spring-webmvc:jar:4.1.6.RELEASE:compile
[INFO] +- org.eclipse.jetty:jetty-util-ajax:jar:9.2.9.v20150224:compile
[INFO] | - org.eclipse.jetty:jetty-util:jar:9.2.9.v20150224:compile
[INFO] +- org.apache.zookeeper:zookeeper:jar:3.4.6:compile
[INFO] | +- jline:jline:jar:0.9.94:compile
[INFO] | - io.netty:netty:jar:3.7.0.Final:compile
[INFO] +- org.apache.thrift:libthrift:jar:0.9.3:compile
[INFO] +- org.apache.curator:curator-recipes:jar:4.0.1:compile
[INFO] | - org.apache.curator:curator-framework:jar:4.0.1:compile
[INFO] | - org.apache.curator:curator-client:jar:4.0.1:compile
[INFO] +- commons-pool:commons-pool:jar:1.6:compile
[INFO] +- org.apache.poi:poi:jar:4.1.0:compile
[INFO] | +- org.apache.commons:commons-collections4:jar:4.3:compile
[INFO] | - org.apache.commons:commons-math3:jar:3.6.1:compile
[INFO] +- org.apache.poi:poi-ooxml:jar:4.1.0:compile
[INFO] | +- org.apache.poi:poi-ooxml-schemas:jar:4.1.0:compile
[INFO] | | - org.apache.xmlbeans:xmlbeans:jar:3.1.0:compile
[INFO] | +- org.apache.commons:commons-compress:jar:1.18:compile
[INFO] | - com.github.virtuald:curvesapi:jar:1.06:compile
[INFO] +- net.lingala.zip4j:zip4j:jar:1.3.2:compile
[INFO] +- com.thoughtworks.xstream:xstream:jar:1.4.8:compile
[INFO] | +- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] | - xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] +- org.apache.httpcomponents:httpmime:jar:4.5.2:compile
[INFO] +- org.apache.httpcomponents:httpclient:jar:4.5.2:compile
[INFO] +- com.squareup.okhttp3:okhttp:jar:3.3.1:compile
[INFO] | - com.squareup.okio:okio:jar:1.8.0:compile
[INFO] +- com.weibo:motan-core:jar:1.0.0:compile
[INFO] | +- com.caucho:hessian:jar:4.0.38:compile
[INFO] | +- com.codahale.metrics:metrics-core:jar:3.0.1:compile
[INFO] | +- com.squareup:javapoet:jar:1.8.0:compile
[INFO] | - org.apache.commons:commons-lang3:jar:3.1:compile
[INFO] +- com.weibo:motan-transport-netty:jar:1.0.0:compile
[INFO] | - org.jboss.netty:netty:jar:3.2.5.Final:compile
[INFO] +- com.weibo:motan-springsupport:jar:1.0.0:compile
[INFO] +- com.weibo:motan-registry-zookeeper:jar:1.0.0:compile
[INFO] +- org.apache.kafka:kafka-clients:jar:1.0.0:compile
[INFO] | +- org.lz4:lz4-java:jar:1.4:compile
[INFO] | - org.xerial.snappy:snappy-java:jar:1.1.4:compile
[INFO] +- org.apache.lucene:lucene-core:jar:5.5.0:compile
[INFO] +- org.hibernate:hibernate-validator:jar:5.4.0.Final:compile
[INFO] | +- org.jboss.logging:jboss-logging:jar:3.3.0.Final:compile
[INFO] | - com.fasterxml:classmate:jar:1.3.1:compile
[INFO] +- org.glassfish:javax.el:jar:3.0.1-b08:compile
[INFO] +- joda-time:joda-time:jar:2.3:compile
[INFO] +- org.im4java:im4java:jar:1.4.0:compile
[INFO] +- org.aspectj:aspectjrt:jar:1.8.9:compile
[INFO] +- org.aspectj:aspectjweaver:jar:1.8.9:compile
[INFO] +- com.github.fernandospr:javapns-jdk16:jar:2.3.1:compile
[INFO] +- com.aliyun.oss:aliyun-sdk-oss:jar:2.7.0:compile
[INFO] | - org.jdom:jdom:jar:1.1:compile
[INFO] +- com.aliyun:aliyun-java-sdk-sts:jar:2.1.6:compile
[INFO] +- com.aliyun:aliyun-java-sdk-core:jar:4.0.3:compile
[INFO] | +- javax.xml.bind:jaxb-api:jar:2.1:compile
[INFO] | | - javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] | +- com.sun.xml.bind:jaxb-core:jar:2.1.14:compile
[INFO] | - com.sun.xml.bind:jaxb-impl:jar:2.1:compile
[INFO] +- com.aliyun:aliyun-java-sdk-dm:jar:3.3.1:compile
[INFO] +- org.jsoup:jsoup:jar:1.10.3:compile
[INFO] +- com.alibaba:fastjson:jar:1.2.47:compile
[INFO] +- com.jayway.jsonpath:json-path-assert:jar:2.4.0:compile
[INFO] | +- com.jayway.jsonpath:json-path:jar:2.4.0:compile
[INFO] | | - net.minidev:json-smart:jar:2.3:compile
[INFO] | | - net.minidev:accessors-smart:jar:1.2:compile
[INFO] | - org.hamcrest:hamcrest-library:jar:1.3:compile
[INFO] +- org.projectlombok:lombok:jar:1.16.8:compile
[INFO] +- com.qiniu:qiniu-java-sdk:jar:7.2.23:compile
[INFO] +- com.qiniu:happy-dns-java:jar:0.1.6:compile
[INFO] +- com.zaxxer:HikariCP:jar:3.3.1:compile
[INFO] +- net.coobird:thumbnailator:jar:0.4.8:compile
[INFO] +- ru.yandex.clickhouse:clickhouse-jdbc:jar:0.2.2:compile
[INFO] | - net.jpountz.lz4:lz4:jar:1.3.0:compile
[INFO] +- org.lionsoul:ip2region:jar:1.7.2:compile
[INFO] +- org.ansj:ansj_seg:jar:5.1.1:compile
[INFO] | - org.nlpcn:nlp-lang:jar:1.7.2:compile
[INFO] - org.ansj:ansj_lucene5_plug:jar:5.1.1.0:compile
I have tried to eliminate conflicting dependencies based on the mvn dependency:tree. After removing all conflicting dependencies, the same error still occurs. I suspect that azure-identity might have some indirect dependencies that conflict with my version of jetty, which is 9.2.9.v20150224.

Couple dependencies look to be possible issues:

Jackson 2.9.* : The Azure SDKs only support usage of Jackson 2.10+
Netty 4.1.17 : This is a much older version than what the Azure SDKs use and it's not uncommon for Netty to have conflicts between versions
GSON 2.6.2 : The Azure SDKs don't have a direct dependency on this but some of our dependencies use a much newer version of this, which could cause a dependency conflict
OkHttp 3.3.1 : The Azure SDKs don't use this by default for HTTP (we use Netty but provide an OkHttp option), but we do use 4.* which would conflict with this

Most likely with what I said above, Jackson or Netty likely has a dependency conflict resulting in a startup error (probably due to a missing class or method error). Getting logs for what Jetty is trying to start will likely point you in the best direction for how to resolve this.

耦合依赖性看起来可能是问题：

Jackson 2.9.*：Azure SDK 仅支持 Jackson 2.10+ 的使用
Netty 4.1.17：这是一个比 Azure SDK 使用的版本要旧得多的版本，Netty 版本之间发生冲突的情况并不罕见
GSON 2.6.2：Azure SDK 对此没有直接依赖，但我们的一些依赖项使用了更新版本，这可能会导致依赖项冲突
OkHttp 3.3.1 ：Azure SDK 默认情况下不将其用于 HTTP（我们使用 Netty 但提供 OkHttp 选项），但我们使用 4.*，这会与此冲突

正如我上面所说，Jackson 或 Netty 很可能存在依赖冲突，导致启动错误（可能是由于缺少类或方法错误）。获取 Jetty 尝试启动的日志可能会为您指明解决此问题的最佳方向。

Couple dependencies look to be possible issues:

Jackson 2.9.* : The Azure SDKs only support usage of Jackson 2.10+
Netty 4.1.17 : This is a much older version than what the Azure SDKs use and it's not uncommon for Netty to have conflicts between versions
GSON 2.6.2 : The Azure SDKs don't have a direct dependency on this but some of our dependencies use a much newer version of this, which could cause a dependency conflict
OkHttp 3.3.1 : The Azure SDKs don't use this by default for HTTP (we use Netty but provide an OkHttp option), but we do use 4.* which would conflict with this

Most likely with what I said above, Jackson or Netty likely has a dependency conflict resulting in a startup error (probably due to a missing class or method error). Getting logs for what Jetty is trying to start will likely point you in the best direction for how to resolve this.

I'm glad you did a series of troubleshooting for me, but the problem should not be that. I rewrote a Spring project with Jetty, and the new project does not have these dependencies. All dependencies are as follows:

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<jetty.version>9.2.9.v20150224</jetty.version>
<microsoft.graph.version>5.80.0</microsoft.graph.version>
<azure.identity.version>1.2.5</azure.identity.version>
<slf4j.version>1.7.10</slf4j.version>
<logback.version>1.4.14</logback.version>

I tried updating Jetty to a higher version, and the startup was successful. The updated version is 9.4.44.v20210927. My original Jetty version was 9.2.9.v20150224. When starting with Jetty version 9.2.9.v20150224, the following warning still appears:
[WARNING] Failed startup of context o.e.j.m.p.JettyWebAppContext@5beb6be2{/,file:/E:/2.0/untitled/target/untitled-1.0-SNAPSHOT/,STARTING}{E:\2.0\untitled\target\untitled-1.0-SNAPSHOT}
org.eclipse.jetty.util.MultiException: Multiple exceptions
at org.eclipse.jetty.annotations.AnnotationConfiguration.scanForAnnotations (AnnotationConfiguration.java:536)
at org.eclipse.jetty.annotations.AnnotationConfiguration.configure (AnnotationConfiguration.java:447)
at org.eclipse.jetty.webapp.WebAppContext.configure (WebAppContext.java:479)
at org.eclipse.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1337)
at org.eclipse.jetty.server.handler.ContextHandler.doStart (ContextHandler.java:741)
at org.eclipse.jetty.webapp.WebAppContext.doStart (WebAppContext.java:505)
at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart (JettyWebAppContext.java:365)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:132)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:61)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart (ContextHandlerCollection.java:163)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:132)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:61)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:132)
at org.eclipse.jetty.server.Server.start (Server.java:387)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:61)
at org.eclipse.jetty.server.Server.doStart (Server.java:354)
at org.eclipse.jetty.maven.plugin.JettyServer.doStart (JettyServer.java:73)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68)
at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty (AbstractJettyMojo.java:534)
at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute (AbstractJettyMojo.java:357)
at org.eclipse.jetty.maven.plugin.JettyRunWarExplodedMojo.execute (JettyRunWarExplodedMojo.java:69)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
at org.codehaus.classworlds.Launcher.main (Launcher.java:47)

authors: alzimmermsft joshfree lxyxjl


text:
[BUG] ServiceBusSessionReceiverClient closes only after timeout

Describe the bug
After invoking ServiceBusSessionReceiverClient close() method, the operation lasts for the tryTimeout period (1 minute by default) of AmqpRetryOptions.
The client should be closed immediately instead of waiting 1 minute.
Exception or Stack Trace
The following log is always visible after timeout (default 1 minute) is reached:
"Timed out waiting for RequestResponseChannel to complete closing. Manually closing."
To Reproduce

Accept any session via ServiceBusSessionReceiverClient.
Invoke 'close()' method on both ServiceBusSessionReceiverClient and ServiceBusReceiverClient.
ServiceBusSessionReceiverClient will be closing 1 minute.

Code Snippet
   public Mono<Void> closeAsync(){
        final Mono<Void> closeOperationWithTimeout  = closeMono.asMono().timeout(retryOptions.getTryTimeout()).onErrorResume(TimeoutException.class, error -> {
            return Mono.fromRunnable(() -> {

                logger.info("Timed out waiting for RequestResponseChannel to complete closing. Manually closing.");

                onTerminalState("SendLinkHandler");
                onTerminalState("ReceiveLinkHandler");
            });
        }).subscribeOn(Schedulers.boundedElastic());

    if (isDisposed.getAndSet(true)) {
        logger.verbose("Channel already closed.");
        return closeOperationWithTimeout;
    }

    logger.verbose("Closing request/response channel.");

    return Mono.fromRunnable(() -> {
        try {
            // Schedule API calls on proton-j entities on the ReactorThread associated with the connection.
            provider.getReactorDispatcher().invoke(() -> {
                logger.verbose("Closing send link and receive link.");

                sendLink.close();
                receiveLink.close();
            });
        } catch (IOException | RejectedExecutionException e) {
            logger.info("Unable to schedule close work. Closing manually.");

            sendLink.close();
            receiveLink.close();
        }
    }).subscribeOn(Schedulers.boundedElastic()).then(closeOperationWithTimeout);

Expected behavior
The ServiceBusSessionReceiverClient should be closed immediately.
Setup (please complete the following information):

OS: Windows 11
IDE: IntelliJ IDEA
Library/Libraries: azure-messaging-servicebus:7.15.2
Java version: 11

Hello @pawel-wilczopolski hope you're doing good. @conniey and I discussed this today. So, the internal state machine of AMQP library is asynchronous and the reason for it wait on force close is to ensure any lingering messages, dispositions (complete|abandon) enqueued and other state in transit is processed, so things are cleaned up gracefully.
If a continuous receive and high throughput is desired, it is recommended to use the ServiceBusProcessorClient. Please see here. As it says there, the use of Synchronous Client (ServiceBus[Session|Receiver]Client) is typically discouraged, because the user has to deal with more errors and possible message expirations. On the other hand, the ServiceBusProcessorClient handles errors automatically and takes care of multi-threading, so receive from multiple sessions can happen in parallel. For the long term, ServiceBusProcessorClient will help the applications be more reliable.
If Synchronous client is still needed, and if you’re going to build a new ServiceBusSessionClient instance or restart the service after the close, you may do a fire-and-forget close, i.e, invoke close on a separate thread and giving it a few seconds before the restart/building new client using a new builder. The code may looks like-
// The ServiceBusSessionReceiver is no longer needed.
// Fire and forget the client close
try {
CompletableFuture.supplyAsync(() -> {
    // call ServiceBusSessionReceiver::close.
return null;
})
.toCompletableFuture().get(5, TimeUnit.SECONDS);
} catch (Exception e) {
    // log(e);
}
// Service restarts or application creates new ServiceBusSessionReceiver

Hi all,
I cannot use ServiceBusProcessorClient because it hides a lot of errors that I need to handle on my side. Your solution is not resolving the real issue. I found out that you have a bug because the waiting logic begins too fast.
In other words – we start waiting 1 minute BEFORE we get the ACK from the server that would cause the graceful shutdown immediately. Please refer to this.
Regards,
Paweł Wilczopolski
From: Anu Thomas Chandy @.>
Sent: Thursday, April 11, 2024 12:43 AM
To: Azure/azure-sdk-for-java @.>
Cc: Pawel Wilczopolski @.>; Mention @.>
Subject: Re: [Azure/azure-sdk-for-java] [BUG] ServiceBusSessionReceiverClient closes only after timeout (Issue #39565)
Hello @pawel-wilczopolskihttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_pawel-2Dwilczopolski&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=HXFQ3pqBriDJ5Fy_brwlqr7slA4OrpjHCKqO4kvqFDM&m=bA1gV65wqjRe2lAi81ye89XYjbY4V3az-9PSi4Bc-o08O6PfKEIu3j4Tccv8m7jc&s=3og3Po7PP6dlUKSZJWABLmfj2SZOgJPEpZq2LTCDkys&e= hope you're doing good. @connieyhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_conniey&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=HXFQ3pqBriDJ5Fy_brwlqr7slA4OrpjHCKqO4kvqFDM&m=bA1gV65wqjRe2lAi81ye89XYjbY4V3az-9PSi4Bc-o08O6PfKEIu3j4Tccv8m7jc&s=4qL1Vp_FvUv4g4M_D6NxnUkXSURX_3ZeGJW3varTNSw&e= and I discussed this today. So, the internal state machine of AMQP library is asynchronous and the reason for it wait on force close is to ensure any lingering messages, dispositions (complete|abandon) enqueued and other state in transit is processed, so things are cleaned up gracefully.
If a continuous receive and high throughput is desired, it is recommended to use the ServiceBusProcessorClient. Please see herehttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Azure_azure-2Dsdk-2Dfor-2Djava_tree_main_sdk_servicebus_azure-2Dmessaging-2Dservicebus-23when-2Dto-2Duse-2Dservicebusprocessorclient&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=HXFQ3pqBriDJ5Fy_brwlqr7slA4OrpjHCKqO4kvqFDM&m=bA1gV65wqjRe2lAi81ye89XYjbY4V3az-9PSi4Bc-o08O6PfKEIu3j4Tccv8m7jc&s=d7wScfcArik_u-c7hMieyD3tmCX4hMjBndAILklD-DQ&e=. As it says there, the use of Synchronous Client (ServiceBus[Session|Receiver]Client) is typically discouraged, because the user has to deal with more errors and possible message expirations. On the other hand, the ServiceBusProcessorClient handles errors automatically and takes care of multi-threading, so receive from multiple sessions can happen in parallel. For the long term, ServiceBusProcessorClient will help the applications be more reliable.
If Synchronous client is still needed, and if you’re going to build a new ServiceBusSessionClient instance or restart the service after the close, you may do a fire-and-forget close, i.e, invoke close on a separate thread and giving it a few seconds before the restart/building new client using a new builder. The code may looks like-
// The ServiceBusSessionReceiver is no longer needed.
// Fire and forget the client close
try {
CompletableFuture.supplyAsync(() -> {
// call ServiceBusSessionReceiver::close.

return null;
})
.toCompletableFuture().get(5, TimeUnit.SECONDS);
} catch (Exception e) {
// log(e);

}
// Service restarts or application creates new ServiceBusSessionReceiver
—
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Azure_azure-2Dsdk-2Dfor-2Djava_issues_39565-23issuecomment-2D2048553634&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=HXFQ3pqBriDJ5Fy_brwlqr7slA4OrpjHCKqO4kvqFDM&m=bA1gV65wqjRe2lAi81ye89XYjbY4V3az-9PSi4Bc-o08O6PfKEIu3j4Tccv8m7jc&s=h4bBCyIldjVmDWflTEJXxxFjZyKcrHdG9at1RDockUM&e=, or unsubscribehttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_BFMFPJQ7PLUME3CZXDLNNTTY4W55VAVCNFSM6AAAAABFZJCK2OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBYGU2TGNRTGQ&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=HXFQ3pqBriDJ5Fy_brwlqr7slA4OrpjHCKqO4kvqFDM&m=bA1gV65wqjRe2lAi81ye89XYjbY4V3az-9PSi4Bc-o08O6PfKEIu3j4Tccv8m7jc&s=g-c5lzdaj88g7aYYtzSlBETN2B1EqnOdSka9EEfu0CE&e=.
You are receiving this because you were mentioned.Message ID: @.@.>>

Adding additional notes on the safety of the above workaround provided - when offloading the closure with a client-side timeout, there are two execution paths, both leading to eventual shutdown and garbage collection of reactor-executor thread, i.e., the reactor-executor thread won’t stay around and will not impact the production run.
•	[Execution-Path-1] Either application or host (VM, container) exit after calling close().
•	[Execution-Path-2] Or, the application calls close() and continues with creating a new Client.
In the first case, since the JVM exits, all threads get cleaned up as part of the exit. In the second case, the old reactor-executor thread will continue its final cleanup activities on the background (without blocking the main thread) and exit.
We’ve created a work item to improve this experience. Linking it here, please track it there. Closing this.

authors: anuchandy pawel-wilczopolski


text:
BOM release pipeline update

The BOM release process isn't currently working because it uses the same release process as a library. The changes in this PR are as follows:

Created azure-sdk-template-bom which is a BOM file that can be used for testing purposes. The only library in that BOM file is the azure-sdk-template file.
Created archetype-java-release-pom-only.yml which removes the following steps:

Version verification - BOM files do not have an artifact version and are not subject to this step
Doc publishing - BOM files do not have sources or javadoc and neither are they required to publish to Maven. There's nothing to publish to msdoc or github.io.
Version increment - Same as the first item in the list, no version control or version to increment.
The main reason a separate yml file was created was due to the fact that you can't skip steps that other steps depenOn without it being counted as a failure. Also, this is vastly simpler than the library publishing since it's literally sign->tag->publish

Small updates to existing BOM pom files.

Spring's BOM file needed the the library artifact update tags removed (one of them didn't even have the correct version anyways).
Added the copy package to Spring's BOM file
Added the artifact update tag for dependencyChecker-maven-plugin to the azure-sdk-bom's pom file.

Bad rebase, killing this PR and starting a new one.


text:
Fix runtime exception of keyvault sample

Delete optional properties, because it will cause runtime exception.
Use application.yml instead of application.properties.

/check-enforcer override


text:
Add missing javadoc for PlayReady license template members

For some reason members of PlayReady license template had no description in javadocs. I have copied description from AMS .NET SDK.

Can one of the admins verify this patch?

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: bvc3at sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@bvc3at, thanks for making the PR. It looks like this has had conflicts for a while which has caused it to stay unmerged. Are you interested in resolving the conflicts?

Hi @bvc3at we're happy to take this contribution (even after such a long delay on our part - so sorry! 😢) but it needs conflicts resolved in order to merge.  Since we haven't heard back in a while I'm going to close this PR for now.  But please re-open or send a new PR once conflicts are resolved and we'll be more responsive.
Thank you again.

authors: Petermarcu azuresdkci bvc3at joshfree msftclas


text:
Sofiar/update tendlc capabilities no breaking changes

Description
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[ ] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[ ] I have read the contribution guidelines.

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

API change check
APIView has identified API level changes in this PR and created following API reviews.
com.azure:azure-communication-phonenumbers

authors: azure-sdk sofiar-msft


text:
[Schema Registry - Avro] Integration test libraries failing in nightly runs

Schema Registry - Avro nightly test runs are failing with:

Error message:
Trace: [Internal Error]
at /Users/runner/work/1/s/common/tools/dev-tool/src/index.ts:10:11
(node:10581) [DEP0040] DeprecationWarning: The punycode module is deprecated. Please use a userland alternative instead.
(Use node --trace-deprecation ... to show where the warning was created)
Error: Failed calling dev-tool run test:node-js-input -- --timeout 5000000 'dist-esm/test/**/*.spec.js'.  Exit code: 255
##[error]PowerShell exited with code '1'.

For more details check here:
https://dev.azure.com/azure-sdk/internal/_build/results?buildId=4133877&view=results

Issue is fixed after ESM migration.

authors: jerryshia minhanh-phan

repo: Azure/azure-sdk-for-js


text:
[service-bus] investigate porting TypeError fixes from event-hubs

In #8584 we investigated the cause of some TypeErrors being thrown from rhea-promise and found that there was a race condition where the event-hubs package could re-open a rhea connection before creating a new connection. This caused the rhea connection's state to become unpredictable and have adverse affects.
We should look at the changes made in #8884 that addressed this in event hubs and consider if they need to be ported to service-bus as well.

This has been completed by #10046 and #10051


text:
[Device Update] Release of Device Update for IoT Hub SDK for JavaScript

This is PR with auto-generated SDK for Device Update for IoT Hub
API View: https://apiview.dev/Assemblies/Review/1f7b07b2876849d4bbb58c6cf0076144

/azp run prepare-pipelines

/azp run js - deviceupdate - ci


text:
[monitor-query] Addressing last bits of feedback for 1.0.0-beta.1

Addressing the last bits of feedback for beta.1!

Fixing some naming to be more consistent (MetricsQueryClient, LogsQueryClient)
Make timespan a required field (either as a positional parameter, or mandatory per query when doing batch queries)
Removing LocalizableString and replacing it with just 'string'
Handle deserializing the various types for the 'Table.rows' into their native equivalents
Adding in more tests for the various model conversions and some live tests that don't require preexisting data

Fixes for some critical bits of #15296

@maorleger , you're co-pilot on this so I'm waiting for your approval on this.
@chradek , since you did the original API review I wanted to add you as well in case you had additional feedback. I believe I addressed most of what was there, minus one thing (the workspace vs workspaces vs workspaceIds). Still following up on that.


text:
[AutoPR storage/resource-manager] Swagger for Lease Container API in Feb18, March18Preview, Jul18 & Nov18.

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/5480

This PR has been merged into https://github.com/Azure/azure-sdk-for-js/pull/1903


text:
[mgmt] signalr release

https://github.com/Azure/sdk-release-request/issues/4611

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-arm-signalr


text:
Fix logic for generating a blob SAS using a stored policy.

This is fix for issue 7115. Original problem is that resource is only assigned properly when permission field is provided. And fix is parsing resource field in independent logic branch.

Why don't we change generateBlobSASQueryParametersUDK20181109 in the same way?

I think we already changed generateBlobSASQueryParametersUDK20181109, would you elaborate a bit?

In reply to: 586978158 [](ancestors = 586978158)


text:
Define parameter name for opinion mining

Options:

IncludeOpinionMining
IncludeAspectsMininig
IncludeAspects

Other options are:

IncludeDetails
IncludeBreakdown
IncludeOpinions

Decided on MineOpinions
See design: https://apiview.dev/Assemblies/Review/b196a5e53fa2441f92e3b1accefa35e7?diffRevisionId=b3605f7e99b744ba8175087b0c933fe2

repo: Azure/azure-sdk-for-net


text:
Add NullableResponse<T> that Response<T> inherits from

Response<T> requires that T Value is not null.  When we want to work around that and return a Response<T> with no Value (like conditional requests that return 3XX, batching requests that haven't been sent to the service yet, DPG errors that were classified as success, ...) we usually throw when accessed.  See NoBodyResponse and ErrorResponse as examples.
While that technically meets the contract for Response<T>, it doesn't match the spirit of it.  We'd like to introduce a NullableResponse<T> that we can start using for this case.  To avoid a bifurcated response hierarchy, we'd like to make the existing Response<T> inherit from it.  Here's a rough example of what the API might look like:
public class NullableResponse<T> {
    public virtual bool HasValue { get; }
    public T? Value { get;  }
}

public Reponse<T> : NullableResponse<T> {
     [EditorBrowsable(EditorBrowsableState.Never)]
     public override bool HasValue => true;

     public new T Value { get; }
}

We also want to evaluate whether DPG protocol methods (and anything accepting RequestContext) should return this NullableResponse<T> instead of regular Response<T>.

We also want to evaluate whether DPG protocol methods (and anything accepting RequestContext) should return this NullableResponse<T> instead of regular Response<T>.

DPG protocol methods only return Response, not Response<T>.  It is the responsibility of the protocol method caller if they pass a response classifier saying errors are acceptable to check Response for errors in order to return a value that correctly matches the Convenience API return type without throwing an exception.

Per offline conversation, this isn't required for DPG GA.  We'll address it once we start adding the Get<Resource>IfExists methods to the management plane (after v1 GA) or to DPG.

Note: This could affect any extensions to Response
guidelines

use nullableResponse when mainline scenario may not return a value
ETag scenarios : it depends

authors: annelo-msft christothes tg-msft


text:
[BUG] Start an internal activity raise a Dependency Call Failure in Live metrics

Library name and version
Azure.Monitor.OpenTelemetry.AspNetCore 1.2.0
Describe the bug
when I start an internal activity, a dependency failure was raised without specifying a status

Expected behavior
Shouldn't show failure
Actual behavior
show failure
Reproduction Steps
  public static readonly ActivitySource TaskActivitySource  = new("task");

var activity = TaskActivitySource.StartActivity($"BackgroundTask test",
    ActivityKind.Internal, parentContext: default);

activity?.SetStatus(ActivityStatusCode.Ok);
activity?.Stop();

addservice
services.AddOpenTelemetry().WithTracing(t => t.AddSource("task")).UseAzureMonitor();

Environment
.NET 8.0.4

I found the bug. working on a fix.


text:
Azure.ApplicationModel.Configuration Cleanup

@KrzysztofCwalina commented on Fri Jan 18 2019

[x] remove all NotImplementedException
[x] remove all TODOs
[x] move types into their own files names appropriately

Moved TODOs into issues.

authors: annelo-msft maririos


text:
[BUG] Azure Search - Cannot $filter by fields containing special characters, even when escaped

Describe the bug
When a filter query includes special characters that have been escaped with backslashes, as described in the SDK docs, it does not match fields containing the same text. (Also, single quote ' is apparently escaped by doubling it: ''.)  In this case, the test document contains a field like:
 "FirmName": "Crazy Charz Inc. ' + - && ! ( ) { } [ ] ^ \" ~ * ? : \\ /"
Expected behavior
The document above should be returned.
Actual behavior (include Exception or Stack Trace)
Instead, zero results are returned.
To Reproduce

Create an index with the document mentioned in the description.
Using the SDK, set SearchParams.Filter to search.in(FirmName, 'Crazy Charz Inc. '' \+ \- \&\& \! \( \) \{ \} \[ \] \^ \" \~ \* \? \: \\ \/', '|'). (That's how the value looks when I inspect in in VS.)
Observe that no results are returned (not an error; see SO link below for details on what happens in the Search Explorer with the same query).

Environment:

Microsoft.Azure.Search v10.1.0
Windows 10
Search is performed in a .NET Standard 2.0 library and consumed by a .NET Core 3.1 library.
Visual Studio 16.4.3

Also see this SO post.
Not to be confused with this feature request; the issue is that the filter doesn't work even when escaping the characters, not the need for a character-escaping method. Unless I'm doing something wrong, in which case, please tell me how to pass this test case. Thanks!

@PrimeHydra I wrote a console app to repro this behavior, and it's not a bug -- you're using the encoding scheme for a different query syntax (Simple query syntax for full-text search, not the OData syntax for filters). I provided more details in my answer on StackOverflow.

Thanks, @brjohnstmsft . Though this was user error, I feel the SDK docs could have made the filter expression character escaping a bit clearer? Three different syntaxes in one request is a lot for search newbies like myself to keep track of. :) Maybe I missed that page in the docs. Appreciate your response.

@PrimeHydra I agree it isn’t discoverable enough. It’s probably in a note somewhere. I’ll change the filter docs to make it more obvious.
We’re currently working on a new generation of client libraries for Azure Cognitive Search, and one of our goals is to provide a mechanism for encoding each syntax so you don’t have to deal with it anymore.

@PrimeHydra I've updated the documentation. The changes should go live some time later today. I added a note at the top of the "simple" and "full Lucene" syntax pages explaining that they're not the same as the filter syntax, then added a section to here explaining how string escaping works in OData.
Thanks for reporting this -- your feedback helps us make our service better!

Hi, I have the same problem with escaping a single quote in a filter expression.
I applied the solution you proposed on the SO post. I doubled the single quote. But there is no values in the response.
I use the latest version of the API (2020-06-30).
Here is the request I execute from the Azure search explorer :
search=revue&$filter=(tags/any(tag: search.in(tag/value,'services d''investissement')))
Thank you for your answer.

Hi, I have the same problem with escaping a single quote in a filter expression.
I applied the solution you proposed on the SO post. I doubled the single quote. But there is no values in the response.
I use the latest version of the API (2020-06-30).
Here is the request I execute from the Azure search explorer :
search=revue&$filter=(tags/any(tag: search.in(tag/value,'services d''investissement')))
Thank you for your answer.

@yviouswilliamous What is the tag value that you're expecting to match? Note that the default delimiters for search.in are comma and space, so your filter is effectively being executed as if it were written this way:
$filter=tags/any(tag: tag/value eq 'services' or tag/value eq 'd''investissement')

@yviouswilliamous What is the tag value that you're expecting to match? Note that the default delimiters for search.in are comma and space, so your filter is effectively being executed as if it were written this way:
$filter=tags/any(tag: tag/value eq 'services' or tag/value eq 'd''investissement')

@yviouswilliamous What is the tag value that you're expecting to match? Note that the default delimiters for search.in are comma and space, so your filter is effectively being executed as if it were written this way:
$filter=tags/any(tag: tag/value eq 'services' or tag/value eq 'd''investissement')

@brjohnstmsft , the tag value I'm expecting to match is "services d'investissement"
If I understand well, I should try changing the default delimiter and do something like this $filter=tags/any(tag: search.in(tag/value,'services d''investissement', '|')) ?

@yviouswilliamous What is the tag value that you're expecting to match? Note that the default delimiters for search.in are comma and space, so your filter is effectively being executed as if it were written this way:
$filter=tags/any(tag: tag/value eq 'services' or tag/value eq 'd''investissement')

@brjohnstmsft , the tag value I'm expecting to match is "services d'investissement"
If I understand well, I should try changing the default delimiter and do something like this $filter=tags/any(tag: search.in(tag/value,'services d''investissement', '|')) ?

Yes, or if you really only want to match against one possible value instead of a list of values, just use eq instead of search.in:
$filter=tags/any(tag: tag/value eq 'services d''investissement')

Yes, or if you really only want to match against one possible value instead of a list of values, just use eq instead of search.in:
$filter=tags/any(tag: tag/value eq 'services d''investissement')

Yes, or if you really only want to match against one possible value instead of a list of values, just use eq instead of search.in:
$filter=tags/any(tag: tag/value eq 'services d''investissement')

Thank you, I know how to solve the problem now. I'll use this notation $filter=tags/any(tag: tag/value eq 'services d''investissement') or the moment. I'll try to implement search.in another time.

Yes, or if you really only want to match against one possible value instead of a list of values, just use eq instead of search.in:
$filter=tags/any(tag: tag/value eq 'services d''investissement')

Thank you, I know how to solve the problem now. I'll use this notation $filter=tags/any(tag: tag/value eq 'services d''investissement') or the moment. I'll try to implement search.in another time.


text:
[ACR] Improve instructions for authenticating a client

Per discussion with @schaabs, we'd like to move away from documenting environment variables for AAD set-up and instead point users toward simpler options in the developer environment.  This update to the ACR readme makes a new proposal for the suggested changes.

/check-enforcer evaluate

/check-enforcer override


text:
Increment version for support releases

Increment package version after release of Azure.ResourceManager.Support

API change check
API changes are not detected in this pull request.


text:
apimanagement - 2022-08-01 - track1 sdk

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

/azp run

@ArthurMa1978 I am stuck with the failure in the pipeline. Can you help?


text:
Update SDK according to new swagger spec for query scale out

Description

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] I have read the contribution guidelines.
[ ] The pull request does not introduce breaking changes.

General Guidelines

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

SDK Generation Guidelines

[ ] If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
[ ] The generate.cmd file for the SDK has been updated with the version of AutoRest, as well as the commitid of your swagger spec or link to the swagger spec, used to generate the code.
[ ] The *.csproj and AssemblyInfo.cs files have been updated with the new version of the SDK.

@michael-falk,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

authors: michael-falk msftclas


text:
Data Box SDK upgrade based on swagger version 2022-12

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

/azp run

@live1206 could you please review this PR and let me know if any changes are needed from our end?

There are breaking changes in the new version, we need to mitigate them firstly.

/azp run net - databox - mgmt - ci

@vaishnavi-janardhan
There is a breaking change in your swagger:

The generated SDK changed from

to

I am wondering what is your purpose of this change here? If the user doesn't set CustomerResolutionCode, does it equal to CustomerResolutionCode.None?

@live1206, from swagger version 2022-10-01 we have introduced a new property within MitigateJobRequest called SerialNumberCustomerResolutionMap which is a replacement to the CustomerResolutionCode. This change was taken as part of supporting the MitigateJobRequest for disk jobs where one job could be associated with multiple disks and we needed to support resolution codes for each disk serial number. So we have made the CustomerResolutionCode property optional and have introduced a dictionary which maps serial numbers to resolution codes.

Yes, if not sent, we can default it to CustomerResolutionCode.None

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.ResourceManager.DataBox

authors: azure-sdk live1206 vaishnavi-janardhan


text:
Add azure sdk data factory test.

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

/azp run net - datafactory - mgmt - ci

API change check
API changes are not detected in this pull request.

/azp run net - datafactory - mgmt - ci

authors: azure-sdk live1206 wangbwn


text:
Upgrading SDK for Microsoft.SCVMM with stable swagger API version 2023-10-07

Microsoft.SCVMM is currently in public preview, and we are targeting GA in November. As part of the GA release criteria, we are going to release the SDK.
Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.ResourceManager.ArcScVmm

PR is active and I will push above requested changes by this week for further review.

Generally looks good. Just want to double confirm with the format of some XXXId properties. Use Guid or ResourceIdentifier when it's possible.
There are some properties (Id, NicId, Uuid) which I cannot point out in the PR review since there is no diff around. Could you please check them offline? Thanks.

Sure, I will update the UUIDs as mentioned. I am waiting on the TypeSpec conversion to complete as other SDK release are also on hold due to that. Will push the changes once this gets completed.

@ArthurMa1978
There are some minor changes in the Swagger API spec for v2023-10-07 with TypeSpec Onboarding (PR: https://github.com/Azure/azure-rest-api-specs/pull/26644).
This will be first GA SDK release, so we want the TypeSpec conversion changes to be included to avoid SDK breaking changes for this version in future.
I will update the generated SDK once the conversion PR is merged.

@ArthurMa1978 Arthur Ma FTE There are some minor changes in the Swagger API spec for v2023-10-07 with TypeSpec Onboarding (PR: Azure/azure-rest-api-specs#26644). This will be first GA SDK release, so we want the TypeSpec conversion changes to be included to avoid SDK breaking changes for this version in future. I will update the generated SDK once the conversion PR is merged.

Ok, let's finish this first and release a beta first since the namespace was changed.


text:
Increment version for devcenter releases

Increment package version after release of Azure.Developer.DevCenter

API change check
API changes are not detected in this pull request.


text:
Increment version for tables releases

Increment package version after release of Azure.Data.Tables

API change check
API changes are not detected in this pull request.


text:
[Event Hubs] Resilient management link creation

Summary
The focus of these changes is to correctly handle the scenario where the management AMQP link is in the process of closing (such as for an idle timeout) as a new operation attempts to use it.  This error should be detected as a special case and retried as it is with producer and consumer operations.
References and related

EventHubConsumerClient.GetPartitionPropertiesAsync throws InvalidOperationException from AMQP library instead of retrying (#46525)

API change check
API changes are not detected in this pull request.

/azp run net - eventhub - tests

authors: azure-sdk jsquire


text:
Increment version for compute releases

Increment package version after release of Azure.ResourceManager.Compute

API change check
API changes are not detected in this pull request.


text:
Dev build package is missing if required package is not released

Dependency test needs a required package in PyPI or devops feed. CI is failing if required package is missing in both locations. Daily dev build version of this package is not getting uploaded to devops feed if CI is failing and if package is not available in devops feed then CI is failing. This causes a circular failure.
for e.g. azure-core 1.7.0 is required by azure-mgmt-core. azure-core version is updated to 1.7.0 and this requirement in azure-mgmt-core was updated at the same time. So azure-core 1.7.0 never got uploaded to devops feed due to dependency requirement failure and this caused CI to failure and goes on circular.

We definitely still have this issue. It is super easy to ameliorate, simply run with BuildTargetinString set to just the dependent package. That resolves the error going forward.
I'm keeping this issue around because maintaining a manual step is definitely not the way to go.

authors: praveenkuttappan scbedd

repo: Azure/azure-sdk-for-python


text:
Dynamically deploy attestation service as part of test-resources deployment

Now that we have a docker image for the attestation service we should migrate away from the statically deployed skrattestation service as per the guidelines
To do so:

Take a look at the updated ARM template in this PR as a baseline https://github.com/Azure/azure-sdk-for-js/pull/16848/files#diff-4508ff3a068d9732821a84de8277596086aed8357f22dea051cd58ef808d12d1
Update your ARM template to deploy a mock attestation service using the docker image hosted on azsdkengsys.
Let me know what improvements we can make here to simplify things :smile:

The choices I saw are:

Azure App Service for containers
Azure Container Instance

I went with (1) in JS because (2) does not provide SSL by default. You might choose (2) for a simpler deployment story keeping in mind the https limitation and whether your HttpClient allows insecure connections.
Finally, consider any recording sanitization that might need updating. The Key Release policy is base64url encoded, and will change depending on the authority field so I had to add extra recorder steps in JS. You might not have to.

This was addressed in https://github.com/Azure/azure-sdk-for-python/pull/21940 -- closing now!

authors: maorleger mccoyp


text:
[Pyamqp GA] Stress Testing Bugs

[ ] Potential Bug: failing to decode empty frames - which would be intermittent. That should be repro-able by polling an otherwise idle connection for a number of minutes. And we should definitely test that - I doubt the empty frame decode logic was ever actually tested.

[ ] we received a SASL frame outside of the SASL negotiation loop, so it showed up in the main frame processing loop and was then ignored. Though this is just a log statement, so not sure how it would have caused issues itself. It also looks like the contents of the frame aren't valid with all those zeros.
- EventHubError('index out of bounds on dimension 1\nindex out of bounds on dimension 1)
- To repro: Catch an IndexError on decode and log the incoming frame

[ ] Sync Websocket -- CPU ConsumerClient is 0, Memory ProducerClient is linearly increasing, logs do not show

[ ] self._shutdown bug with ValueError not allowing for iteration via retries

Label prediction was below confidence level 0.6 for Model:ServiceLabels: 'Azure.Core:0.50518394,Storage:0.23801424,Event Hubs:0.06323718'


text:
Azure-Mgmt-Monitor Virtualmachine 'Percentage CPU' and 'Available Memory Bytes' not consistent with Azure CLI

Package Name:  azure-mgmt-monitor
Package Version: 5.0.1
Operating System: Ubuntu 22.04.2 LTS
Python Version: Python 3.10.6

Describe the bug
Querying the same metrics with azure-mgmt-monitor and Azure CLI do not return the same value.
To Reproduce

Setup a VM (I tested with Standard_D2as_v5 but witnessed the same with many other VM sizes)
Stress that CPU for some time (I used Linux's stress)
Query the VM CPU and memory usage with the CLI. Below is the exact command and output I got in my latest test:

az vm monitor metrics tail --name $VM_NAME --resource-group $GROUP_NAME --subscription $SUBSCRIPTION_ID --metric "Percentage CPU" --interval 1m --start-time 2023-03-22T17:10:00-00:00 --end-time 2023-03-22T17:20:00-00:00 --output table
Command group 'vm monitor metrics' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Timestamp            Name            Average
-------------------  --------------  ---------
2023-03-22 17:10:00  Percentage CPU  0.1175
2023-03-22 17:11:00  Percentage CPU  7.7875
2023-03-22 17:12:00  Percentage CPU  1.23
2023-03-22 17:13:00  Percentage CPU  70.275
2023-03-22 17:14:00  Percentage CPU  94.01
2023-03-22 17:15:00  Percentage CPU  93.3575
2023-03-22 17:16:00  Percentage CPU  92.6475
2023-03-22 17:17:00  Percentage CPU  94.235
2023-03-22 17:18:00  Percentage CPU  94.2825
2023-03-22 17:19:00  Percentage CPU  93.3825

az vm monitor metrics tail --name $VM_NAME --resource-group $GROUP_NAME --subscription $SUBSCRIPTION_ID --metric "Available Memory Bytes" --interval 1m --start-time 2023-03-22T17:10:00-00:00 --end-time 2023-03-22T17:20:00-00:00 --output table
Command group 'vm monitor metrics' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Timestamp            Name                              Average
-------------------  --------------------------------  ------------
2023-03-22 17:10:00  Available Memory Bytes (Preview)  7798259712.0
2023-03-22 17:11:00  Available Memory Bytes (Preview)  7778861056.0
2023-03-22 17:12:00  Available Memory Bytes (Preview)  7770996736.0
2023-03-22 17:13:00  Available Memory Bytes (Preview)  7769948160.0
2023-03-22 17:14:00  Available Memory Bytes (Preview)  7768899584.0
2023-03-22 17:15:00  Available Memory Bytes (Preview)  7769948160.0
2023-03-22 17:16:00  Available Memory Bytes (Preview)  7769948160.0
2023-03-22 17:17:00  Available Memory Bytes (Preview)  7772045312.0
2023-03-22 17:18:00  Available Memory Bytes (Preview)  7769948160.0
2023-03-22 17:19:00  Available Memory Bytes (Preview)  7768899584.0

Pull the same data with the following code:

#!/usr/bin/env python3
# Inspired from:
# https://learn.microsoft.com/en-us/python/api/overview/azure/monitoring?view=azure-python-previous&viewFallbackFrom=azure-python
# Modified to
# - Added credentials
# - Changed timespan and granularity
# - Added memory metric
# - Removed metrics listing
# - Fix the code as the example above does not execute (item.unit.name does not exit)
#
# Why the CLI and Python code return different values? The CPU ratio is always 4.
# The python-reported CPU usage is 4 times higher than the CLI one. This is Standard_D2as_v5 VM.
# What is the aggregation type doing? Except 'Total' they all cause the metric data to be None

import datetime
from azure.identity import DefaultAzureCredential
from azure.mgmt.monitor import MonitorManagementClient

credentials = DefaultAzureCredential()

subscription_id='your subscription ID here'
resource_group_name='your group name here'
vm_name='your VM name here'

# Get the ARM id of your resource. You might chose to do a "get"
# using the according management or to build the URL directly
# Example for a ARM VM
resource_id = (
    "subscriptions/{}/"
    "resourceGroups/{}/"
    "providers/Microsoft.Compute/virtualMachines/{}"
).format(subscription_id, resource_group_name, vm_name)

# create client
client = MonitorManagementClient(
    credentials,
    subscription_id
)

# Get CPU total

today = datetime.datetime.now().date()
yesterday = today - datetime.timedelta(days=1)

# https://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2021_05_01.operations.metricsoperations?view=azure-python#azure-mgmt-monitor-v2021-05-01-operations-metricsoperations-list
metrics_data = client.metrics.list(
    resource_id,
    timespan="{}/{}".format('2023-03-22T17:10:00-00:00', '2023-03-22T17:20:00-00:00'),
    interval='PT1M',
    metricnames='Percentage CPU,Available Memory Bytes',
    # https://learn.microsoft.com/en-us/python/api/azure-monitor-query/azure.monitor.query.metricaggregationtype?view=azure-python
    aggregation='Total'
)

for item in metrics_data.value:
    # azure.mgmt.monitor.models.Metric
    print("{} ({})".format(item.name.localized_value, item.unit))
    for timeserie in item.timeseries:
        for data in timeserie.data:
            # azure.mgmt.monitor.models.MetricData
            print("{}: {}".format(data.time_stamp, data.total))

Which in my test outputs:
Percentage CPU (Percent)
2023-03-22 17:10:00+00:00: 0.47
2023-03-22 17:11:00+00:00: 31.15
2023-03-22 17:12:00+00:00: 4.92
2023-03-22 17:13:00+00:00: 281.1
2023-03-22 17:14:00+00:00: 376.04
2023-03-22 17:15:00+00:00: 373.43
2023-03-22 17:16:00+00:00: 370.59
2023-03-22 17:17:00+00:00: 376.94
2023-03-22 17:18:00+00:00: 377.13
2023-03-22 17:19:00+00:00: 373.53
Available Memory Bytes (Preview) (Bytes)
2023-03-22 17:10:00+00:00: 15596519424.0
2023-03-22 17:11:00+00:00: 15557722112.0
2023-03-22 17:12:00+00:00: 15541993472.0
2023-03-22 17:13:00+00:00: 15539896320.0
2023-03-22 17:14:00+00:00: 15537799168.0
2023-03-22 17:15:00+00:00: 15539896320.0
2023-03-22 17:16:00+00:00: 15539896320.0
2023-03-22 17:17:00+00:00: 15544090624.0
2023-03-22 17:18:00+00:00: 15539896320.0
2023-03-22 17:19:00+00:00: 15537799168.0

I also tried with aggregation='Average' but only got None data:
Percentage CPU (Percent)
Percentage CPU (Percent)
2023-03-22 17:10:00+00:00: None
2023-03-22 17:11:00+00:00: None
2023-03-22 17:12:00+00:00: None
2023-03-22 17:13:00+00:00: None
2023-03-22 17:14:00+00:00: None
2023-03-22 17:15:00+00:00: None
2023-03-22 17:16:00+00:00: None
2023-03-22 17:17:00+00:00: None
2023-03-22 17:18:00+00:00: None
2023-03-22 17:19:00+00:00: None
Available Memory Bytes (Preview) (Bytes)
2023-03-22 17:10:00+00:00: None
2023-03-22 17:11:00+00:00: None
2023-03-22 17:12:00+00:00: None
2023-03-22 17:13:00+00:00: None
2023-03-22 17:14:00+00:00: None
2023-03-22 17:15:00+00:00: None
2023-03-22 17:16:00+00:00: None
2023-03-22 17:17:00+00:00: None
2023-03-22 17:18:00+00:00: None
2023-03-22 17:19:00+00:00: None

Expected behavior
Azure-Mgmt-Monitor should return the same values as Azure CLI.
Screenshots
N/A
Additional context
N/A

Hi @legdba, thank you for opening an issue! I'll tag some folks who should be able to help and we'll get back to you as soon as possible.

@legdba We are looking into it and get back to you for any additional information.

Any update?

@legdba In your code, change last print statement to get the desired results -
data.total to data.average for aggregation='Average' ,
and similarly use data.total for aggregation='Total'.
Example -
# https://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2021_05_01.operations.metricsoperations?view=azure-python#azure-mgmt-monitor-v2021-05-01-operations-metricsoperations-list
metrics_data = client.metrics.list(
    resource_id,
    timespan="{}/{}".format('2023-03-22T17:10:00-00:00', '2023-03-22T17:20:00-00:00'),
    interval='PT1M',
    metricnames='Percentage CPU,Available Memory Bytes',
    # https://learn.microsoft.com/en-us/python/api/azure-monitor-query/azure.monitor.query.metricaggregationtype?view=azure-python
    aggregation='Average'
)

for item in metrics_data.value:
    # azure.mgmt.monitor.models.Metric
    print("{} ({})".format(item.name.localized_value, item.unit))
    for timeserie in item.timeseries:
        for data in timeserie.data:
            # azure.mgmt.monitor.models.MetricData
            print("{}: {}".format(data.time_stamp, data.average))

I have tested it and I get the same results as CLI.  (Screenshot below)
Total

Please let me know if you have any other questions.

authors: SaurabhSharma-MSFT legdba mccoyp


text:
Readme Content Verification - need to format readmes to match template doc

The following data-plane items need to be addressed. Validation has failed on the following readme list items.
tl;dr: Readmes should have at least have sections that correspond to the main sections as defined in the template readme.
This is what the tool checks, but the ideal scenario is the readme is reworked to be somewhat like the readme example.
For a rundown on what you need to do to resolve these breaking issues ASAP, check out aka.ms/azure-sdk-analyze-failed
ITEMS
31 readmes have at least one missing required section.

[ ] \README.rst is missing headers with patterns:

Azure .+ client library for Python
^Getting started$
^Key concepts$
^Examples$
^Troubleshooting$
^Next steps$
^Contributing$

(the items below have identical failures as the root readme as well, explicit list omitted for brevity)

[ ] sdk\attestation\azure-attestation\README.md
[ ] sdk\synapse\azure-synapse\README.md
[ ] \azure-applicationinsights\README.rst
[ ] \azure-batch\README.rst
[ ] \azure-cognitiveservices-knowledge-nspkg\README.rst
[ ] \azure-cognitiveservices-knowledge-qnamaker\README.rst
[ ] \azure-cognitiveservices-language-luis\README.rst
[ ] \azure-cognitiveservices-language-nspkg\README.rst
[ ] \azure-cognitiveservices-language-spellcheck\README.rst
[ ] \azure-cognitiveservices-language-textanalytics\README.rst
[ ] \azure-cognitiveservices-search-autosuggest\README.rst
[ ] \azure-cognitiveservices-search-customimagesearch\README.rst
[ ] \azure-cognitiveservices-search-customsearch\README.rst
[ ] \azure-cognitiveservices-search-entitysearch\README.rst
[ ] \azure-cognitiveservices-search-imagesearch\README.rst
[ ] \azure-cognitiveservices-search-newssearch\README.rst
[ ] \azure-cognitiveservices-search-nspkg\README.rst
[ ] \azure-cognitiveservices-search-videosearch\README.rst
[ ] \azure-cognitiveservices-search-visualsearch\README.rst
[ ] \azure-cognitiveservices-search-websearch\README.rst
[ ] \azure-cognitiveservices-vision-computervision\README.rst
[ ] \azure-cognitiveservices-vision-contentmoderator\README.rst
[ ] \azure-cognitiveservices-vision-customvision\README.rst
[ ] \azure-cognitiveservices-vision-face\README.rst
[ ] \azure-cognitiveservices-vision-nspkg\README.rst
[ ] \azure-eventgrid\README.rst
[ ] \azure-graphrbac\README.rst
[ ] \azure-keyvault\README.rst
[ ] \azure-loganalytics\README.rst
[ ] \azure-servicebus\README.rst
[ ] \azure-servicefabric\README.rst
[ ] \azure-servicemanagement-legacy\README.rst

Hii I would want to contribute please guide me further

Hii I would want to contribute please guide me further

Hey @Prernajha2609, apologies for the late response, I've been quite buried under an upcoming release.
We built a markdown scanner that can evaluate documents and ensure that they follow the basic structure that we decide. In this case, we have decided that we want our readmes to at least have the major sections:

Azure .+ client library for Python
^Getting started$
^Key concepts$
^Examples$
^Troubleshooting$
^Next steps$
^Contributing$

Which pans out to markdown that follow general shape of:
# Azure storage blob client library for Python
## Getting Started
<content>
## Key Concepts
<content>
<... other headers follow>

This is a simple proxy check to ensure that the readmes cover topics that we have decided are important.
If you're still interested in contributing, I would recommend that you pick a single readme from the above list and start converting it to the shape that we laid out above.
Other readmes to reference:

azure-core
azure-appconfiguration

If you do end up contributing a readme update, please @ me in the PR! I'm much more on top of notifications nowadays.

Hi , I would also like to work on this issue.

Instructions are above! Contributions are always welcome 👍

@scbedd can provide me a resource on how to run the markdown scanner ?

Closing, since this should be addressed in the python generator for the listed libraries

authors: Prernajha2609 kristapratico scbedd shubhusion


text:
Ensure CI can handle incoming storage track 2 and eventhubs track 2 packages

eventhubs track 2 has a dependency on UMAQP 1.1, while current servicebus relies on umaqp 1.2
Another issue is that azure-core hasn't yet been released to PyPI.
Goal here:

Ensure CI still builds from branch storage-track2 after reverting this commit which skipped problematic tests.
azure-eventhubs package needs to have a dependency on azure-umaqp-python version 1.2. How can that happen without breaking the world?

For 2): I would prefer that we publish azure-uamqp-python to 1.2, then ensure that azure-servicebus still works. If not, patch appropriately.
As part of the build step, we explicitly disallow depending on multiple version specifiers for a specific package. Simply allowing azure-eventhubs to depend on 1.2 while azure-servicebus depends on 1.1 is a recipe for disaster, and will definitely break the build.


text:
Service Bus Queues: custom properties string values containing quotes are mutated in the received message

String custom properties containing quotes are mutated in the received message. 'This "should" work fine' as a value for a custom property in the input message becomes '\"This \"should\" work fine\"' in the received message.
Python code to reproduce
from azure.servicebus import ServiceBusService
from azure.servicebus import Message

service_namespace = 'YOUR_SERVICE_NAMESPACE'
shared_access_key_name = 'KEY_NAME'
shared_access_key_value = 'KEY_VALUE'
sbs = ServiceBusService(service_namespace=service_namespace,
                        shared_access_key_name=shared_access_key_name,
                        shared_access_key_value=shared_access_key_value)

def test_message(custom_properties):
    out_message = Message()
    out_message.custom_properties = custom_properties
    sbs.send_queue_message('receipt-classification-input', out_message)

    in_message = sbs.receive_queue_message('receipt-classification-input')

    if out_message.custom_properties == in_message.custom_properties:
        print('Custom properties identical when received')
    else:
        print('Expected: ' + str(out_message.custom_properties) + ' got ' + str(in_message.custom_properties))

test_message({'property': 'This should work fine'})
test_message({'property': 'This "should" work fine'})  # return value for property is '\\"This \\"should\\" work fine\\"'

Thank you for your precise feedback! I take a look asap.
Regards,

The package 'azure-servicebus' was released yesterday as 0.20.3 with the fix.
Thank you for your patience and sorry for the delay!

authors: eiliven lmazuel