Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[azservicebus] Memory leak when receiving messages #22157

Closed
gkampitakis opened this issue Dec 18, 2023 · 28 comments · Fixed by #22253
Closed

[azservicebus] Memory leak when receiving messages #22157

gkampitakis opened this issue Dec 18, 2023 · 28 comments · Fixed by #22253
Assignees
Labels
Client This issue points to a problem in the data-plane of the library. customer-reported Issues that are reported by GitHub users external to the Azure organization. needs-team-attention Workflow: This issue needs attention from Azure service team or SDK team Service Bus

Comments

@gkampitakis
Copy link

Bug Report

  • Package in question azure-sdk-for-go/sdk/messaging/azservicebus
  • SDK version v1.5.0
  • go version 1.21
  • What happened?

We are trying to move away from the deprecated azure sdk for service bus https://github.com/Azure/azure-service-bus-go and use e the new in one of our services. This service is heavily reading on messages from a Service Bus Queue. We are noticing an increasing usage of memory.

Screenshot 2023-12-18 at 12 38 00

Also from profiling data we can see that the Heap size increase is happening at go-ampq code

Screenshot 2023-12-18 at 12 41 48

  • What did you expect or want to happen?

I would expect the new SDK to have a different memory footprint (either higher or lower memory consumption) but after some time i was expecting the memory usage of the service to be stable as before and not increasing time over time.

  • How can we reproduce it?

Not sure how easy it is, as we need to leave the service running for a couple of days to start seeing the increase in memory usage.

  • Anything we should know about your environment.

Data shared above are from staging environment. I am expecting bigger usage on a prod environment with much higher traffic.

Our setup is we are using a number of worker goroutines each one receiving messages from a client.Receiver in parallel.

@github-actions github-actions bot added Client This issue points to a problem in the data-plane of the library. customer-reported Issues that are reported by GitHub users external to the Azure organization. needs-team-triage Workflow: This issue needs the team to triage. question The issue doesn't require a change to the product in order to be resolved. Most issues start as that Service Bus labels Dec 18, 2023
@jhendrixMSFT jhendrixMSFT removed question The issue doesn't require a change to the product in order to be resolved. Most issues start as that needs-team-triage Workflow: This issue needs the team to triage. labels Jan 2, 2024
@github-actions github-actions bot added the needs-team-attention Workflow: This issue needs attention from Azure service team or SDK team label Jan 2, 2024
@jhendrixMSFT
Copy link
Member

Looks related/due to Azure/go-amqp#314.

@gkampitakis
Copy link
Author

Indeed it does looks related. Thanks for linking it 👍

@jhendrixMSFT
Copy link
Member

Would you be able to share any additional info about your app? I've copied the questions from the linked issue.

  • are there multiple senders/receivers?
  • are the senders/receivers short or long lived?
  • what are typical message sizes and how big is the largest message (best guess is fine)?

@gkampitakis
Copy link
Author

  • are there multiple senders/receivers?

Yes there are. We have a number of producer goroutines that are receiving messages and a number of consumer goroutines that process messages and communicate via a go channel. At the start of the service we create a pool of receivers client.NewReceiverForQueue for receiving messages in parallel.

  • are the senders/receivers short or long lived?

They are long lived. At service start up we create one client and from that client we create the needed receivers and senders that are used throughout the life of the service.

  • what are typical message sizes and how big is the largest message (best guess is fine)?

The average message size is ~3Kib and the max message size can be up to 256Kib.

@jhendrixMSFT
Copy link
Member

Thanks this is helpful.

Is the number of senders/receivers dynamic or fixed? Sounds like it's fixed but I don't want to make assumptions. If it is dynamic, does the number of senders/receivers have a cap and does it ever shrink?

At the go-amqp level, each sender/receiver has its own message buffer, and the buffer size will grow to the largest sent/received message but will never shrink.

If the number of senders/receivers is fixed, then I would expect that the total buffer size would end up being "count senders/receivers * max message size" and level out. I'm thinking about this in the context of the linked issue. It could be that what you're observing is something different.

@gkampitakis
Copy link
Author

gkampitakis commented Jan 4, 2024

Is the number of senders/receivers dynamic or fixed? Sounds like it's fixed but I don't want to make assumptions.

That is correct, it's a fixed number.

If the number of senders/receivers is fixed, then I would expect that the total buffer size would end up being "count senders/receivers * max message size" and level out. I'm thinking about this in the context of the linked issue. It could be that what you're observing is something different.

This is what I expected as well. Our service doesn't consume much memory so I would expect even if there was a memory increase at some point it will level out (given the service is receiving stable traffic).

But this is how our memory is trending in a period of 3 weeks (on staging env)

Screenshot 2024-01-04 at 19 11 27

On the profile I shared above, addUnsettled looks like a potential point of leakage. Which just adds a key in a map if this map never get's empty can cause this type of slow leakage, unfortunately though I am not familiar with the go-ampq to understand the path of addUnsettled and deleteUnsettled.

@jhendrixMSFT
Copy link
Member

Thanks for clarifying that point. I will take a look at this specific angle.

@richardpark-msft
Copy link
Member

Interesting, possibly related to maps in Go never shrinking, even when keys are deleted?

golang/go#20135

@gkampitakis
Copy link
Author

gkampitakis commented Jan 5, 2024

This was my 1st thought, but that should not be the issue. If keys where getting recycled in the map (adding and removing them in a steady flow), the map length should remain the same (grow until it reaches a stable point == the max number of keys inside the map at point in time), but here IF this is the issue and culprit, it looks like we are adding more keys than what we are removing right?

@jhendrixMSFT
Copy link
Member

How do you configure the ReceiveMode for the receivers?

@gkampitakis
Copy link
Author

How do you configure the ReceiveMode for the receivers?

Using the default ReceiveModePeekLock.

@jhendrixMSFT
Copy link
Member

Thanks. From a go-amqp perspective, it means the receiver is using ReceiverSettleModeSecond, meaning that we don't remove the message from the unsettled map until we receive confirmation of settlement from Service Bus (that happens here).

Just to confirm, you're calling one of the message settlement methods as documented here right? I'm pretty sure you must be else the receiving link would run out of credit at some point and no more messages would be received (Richard can correct me if I'm wrong here).

@gkampitakis
Copy link
Author

That is correct. We either Complete or Abandon the message.

Something to note though is we don't use the same receiver instance that called ReceiveMessages. So different receiver ReceiveMessages and different receiver "settles" them. Can that be the issue? Is the settled map a per receiver object?

@richardpark-msft
Copy link
Member

That is correct. We either Complete or Abandon the message.

Something to note though is we don't use the same receiver instance that called ReceiveMessages. So different receiver ReceiveMessages and different receiver "settles" them. Can that be the issue? Is the settled map a per receiver object?

Ah, that could definitely be it. If you complete on a different Receiver than you received on the completion goes through a different path which means the original AMQP receiver won't be notified.

@richardpark-msft
Copy link
Member

@gkampitakis, just curious why you complete on a different Receiver than you received on?

@jhendrixMSFT
Copy link
Member

That is indeed the problem. The Receiver that received the message will add the Message to its unsettled map. So, unless you settle the message from the same Receiver it will never be removed.

@richardpark-msft we should document this requirement and at some point see if we can remove it.

@gkampitakis
Copy link
Author

@richardpark-msft

We are using a pool of receivers to ReceiveMessages concurrently from multiple goroutines, process them and then complete them. So from the pool you pick a random (available) receiver to ReceiveMessages and then have a single receiver that settles the messages.

Thanks both for your time spent on this 🙇. I couldn't have figure it out. Will try to work around this and use the same receiver for both operations.

@jhendrixMSFT
Copy link
Member

jhendrixMSFT commented Jan 9, 2024

@gkampitakis FYI we'll be releasing an updated go-amqp (should be today) that fixes the cross-receiver message settlement memory leak.

@gkampitakis
Copy link
Author

I have deployed my service with the latest go-ampq, but unfortunately I don't see any improvement 🤔

go-ampq has 55% of all allocated objects in my service.

Screenshot 2024-01-16 at 09 37 45

and memory still trending upwards.

Screenshot 2024-01-16 at 09 36 33

@jhendrixMSFT
Copy link
Member

jhendrixMSFT commented Jan 16, 2024

I've been doing a little reading up on how maps are implemented in Go, and I think this behavior is expected, although unwanted for our purposes.

In Receiver.unsettledMessages we use a message's delivery tag as the map's key. Since delivery tags are required to be unique per link, the number of buckets in a map will slowly increase as the keys will never be recycled. This growth is really easy to see in a benchmark.

func BenchmarkReceiverUnsettledCount(b *testing.B) {
	r := &Receiver{}
	r.unsettledMessages = map[string]struct{}{}
	deliveryTag := [32]byte{}
	fakeMsg := &Message{
		DeliveryTag: deliveryTag[:],
	}
	for i := 0; i < b.N; i++ {
		for unsettledCount := uint32(0); unsettledCount < 1000000; unsettledCount++ {
			// use the unsettled count as the delivery tag
			binary.BigEndian.PutUint32(deliveryTag[:], unsettledCount)
			r.addUnsettled(fakeMsg)
			r.deleteUnsettled(fakeMsg)
		}
	}
}
PS C:\git\Azure\go-amqp> go test -bench BenchmarkReceiverUnsettledCount -benchmem
goos: windows
goarch: amd64
pkg: github.com/Azure/go-amqp
cpu: AMD Ryzen 9 7950X3D 16-Core Processor
BenchmarkReceiverUnsettledCount-8             24          49150729 ns/op        32000029 B/op    1000000 allocs/op
PASS
ok      github.com/Azure/go-amqp        28.627s

We can fix this as described in Azure/go-amqp#317. There might be other options too.

@gkampitakis
Copy link
Author

Ooops closed the issue by mistake.

Thanks for posting this benchmark it's helpful but, I am not sure that shows an issue on the go map increasing.

I just changed the code to have an intermediate step of casting to string

func (r *Receiver) addUnsettled(msg *Message) {
	r.unsettledMessagesLock.Lock()
	t := string(msg.DeliveryTag) // this changed
	r.unsettledMessages[t] = struct{}{}
	r.unsettledMessagesLock.Unlock()
}

func (r *Receiver) deleteUnsettled(msg *Message) {
	r.unsettledMessagesLock.Lock()
	t := string(msg.DeliveryTag) // this changed
	delete(r.unsettledMessages, t)
	r.unsettledMessagesLock.Unlock()
}

and this is shown from the profile.

go tool pprof mem.out  

ROUTINE ======================== github.com/Azure/go-amqp.(*Receiver).addUnsettled in /Users/george.kampitakis/Dev/go-amqp/receiver.go
    1.11GB     1.11GB (flat, cum) 90.91% of Total
         .          .    349:func (r *Receiver) addUnsettled(msg *Message) {
         .          .    350:   r.unsettledMessagesLock.Lock()
    1.11GB     1.11GB    351:   t := string(msg.DeliveryTag)
         .          .    352:   r.unsettledMessages[t] = struct{}{}
         .          .    353:   r.unsettledMessagesLock.Unlock()
         .          .    354:}
         .          .    355:
         .          .    356:func (r *Receiver) deleteUnsettled(msg *Message) {

and if i change the code a bit more to not allocate from byte to string

func (r *Receiver) addUnsettled(msg *Message) {
	r.unsettledMessagesLock.Lock()
	t := byteSliceToString(msg.DeliveryTag)
	r.unsettledMessages[t] = struct{}{}
	r.unsettledMessagesLock.Unlock()
}

func (r *Receiver) deleteUnsettled(msg *Message) {
	r.unsettledMessagesLock.Lock()
	t := byteSliceToString(msg.DeliveryTag)
	delete(r.unsettledMessages, t)
	r.unsettledMessagesLock.Unlock()
}

func byteSliceToString(b []byte) string {
	return unsafe.String(unsafe.SliceData(b), len(b))
}

I see this

➜  go-amqp git:(main) ✗ go test -bench BenchmarkReceiverUnsettledCount -memprofile mem.out
goos: darwin
goarch: arm64
pkg: github.com/Azure/go-amqp
BenchmarkReceiverUnsettledCount-10            31          38238093 ns/op               4 B/op          0 allocs/op
PASS
ok      github.com/Azure/go-amqp        18.973s

@jhendrixMSFT
Copy link
Member

jhendrixMSFT commented Jan 16, 2024

You're correct, great catch (I should have looked deeper).

I'm looking over the message settlement code and I see a few other possibilities.

  • we fail to send the disposition frame (i.e. Receiver.AcceptMessage() et al returns an error)
  • the Receiver never receives the acknowledging disposition frame

For the first case, do you ever see Complete/Abandon fail? If so, how do you handle that (retry etc)?

@richardpark-msft I just had a thought. If the receiver falls back to using the management link, will service bus send us an acknowledging disposition frame? If not, then that could also explain it. When the receiver is in mode second (which it is in this case), we'll remove the entry from the unsettled map upon receiving the ack'ing disposition frame. Is there an easy way to tell when settlement falls back to the management link?

@richardpark-msft
Copy link
Member

I've been doing a little reading up on how maps are implemented in Go, and I think this behavior is expected, although unwanted for our purposes.

In Receiver.unsettledMessages we use a message's delivery tag as the map's key. Since delivery tags are required to be unique per link, the number of buckets in a map will slowly increase as the keys will never be recycled. This growth is really easy to see in a benchmark.

(I reference it here if anyone wants to read the Golang issue about it: #22157 (comment))

@richardpark-msft
Copy link
Member

You're correct, great catch (I should have looked deeper).

I'm looking over the message settlement code and I see a few other possibilities.

  • we fail to send the disposition frame (i.e. Receiver.AcceptMessage() et al returns an error)
  • the Receiver never receives the acknowledging disposition frame

For the first case, do you ever see Complete/Abandon fail? If so, how do you handle that (retry etc)?

@richardpark-msft Richard Park (DEVDIV) FTE I just had a thought. If the receiver falls back to using the management link, will service bus send us an acknowledging disposition frame? If not, then that could also explain it. When the receiver is in mode second (which it is in this case), we'll remove the entry from the unsettled map upon receiving the ack'ing disposition frame. Is there an easy way to tell when settlement falls back to the management link?

The entire interaction, at that point, will occur over the management link. It seems that since the only reason we have the map is to do some logging that we're best just removing it and maybe just making it a counter instead. You only clear it when you get a successful disposition frame (assuming) so it seems like it'd still be accurate with what you've done with tracking the original receiver.

So I think that work was still worth it and doing it as a counter should eliminate memory concerns.

@jhendrixMSFT
Copy link
Member

When the receiver is in mode second, we'd still decrement the unsettled count upon receiving the ack'ing disposition frame.

@jhendrixMSFT
Copy link
Member

Richard and I spoke about this offline. The reason the go-amqp@v1.0.3 change didn't fix this is because cross-receiver settlement at the azservicebus level bypasses the go-amqp layer.

I've released go-amqp@v1.0.4 which replaces the unsettled messages map with a count which should fix this.

richardpark-msft added a commit that referenced this issue Jan 17, 2024
go-amqp got a fix recently that replaces its internal tracking map with a counter, which eliminates a rare memory leak we'd see if you were settling a message on a separate receiver _while_ the other receiver was still alive.

In recovery scenarios, we discard the old Receiver instance, making this a non-issue for our typical use case.

Fixes #22157
@gkampitakis
Copy link
Author

I have deployed go-amqp 1.0.4 since morning and looks more promising. Thank you.

@jhendrixMSFT
Copy link
Member

@gkampitakis thanks for your help with this and providing all the diagnostic info.

xsuo2022 pushed a commit to confluentinc/azure-sdk-for-go that referenced this issue Mar 6, 2024
* Sync eng/common directory with azure-sdk-tools for PR 7385 (Azure#22112)

* Update organization of the eng/common/testproxy folder
* Add merge-proxy-tags.ps1 and readme to eng/common/testproxy/scripts/tag-merge/
* Extract common assets script functionality to common-asset-functions.ps1

---------

Co-authored-by: Scott Beddall (from Dev Box) <scbedd@microsoft.com>

* [Release] sdk/resourcemanager/baremetalinfrastructure/armbaremetalinfrastructure/2.0.0-beta.1 (Azure#22105)

* [Release] sdk/resourcemanager/baremetalinfrastructure/armbaremetalinfrastructure/2.0.0-beta.1 generation from spec commit: 90115af9fda46f323e5c42c274f2b376108d1d47

* add removeUnreferencedTypes flag

* [azopenai] Updating to the latest 2023-12-01 API (Azure#22081)

Generating based on the latest swagger for the 2023-12-01 API:

- Chat message types for requests and responses are now different, with fields that are relevant to each more clearly called out. For instance, fields relevant to only assistant type messages (like tools) are separated properly.
- Strong types for OYD (ie, bring your own data) scenarios, instead of a `any` parameter.
- General updates to just expose new features for models like Dall-E

Also, improved the tests a bit to handle the fact that we're often going to several different Azure OpenAI instances for different models, developing features, etc...

* azblob: Return io.ErrUnexpectedEOF as error in UploadStream (Azure#22109)

* Doc fix (Azure#22117)

* Add more retry after headers to check during retries (Azure#22121)

* Add more retry after headers to check during retries

Include the headers that provide sub-second granularity.

* add clarifying comment and negative tests

* simplify custom

* [azopenai] Fixing some issues with incorrect/incomplete types in generation (Azure#22119)

Fixes:
- ToolChoice was unmodeled.
- ResponseFormat for ChatCompletions wasn't settable using the swagger as we had it (it's an object, not a string)

* Prep azcore for release (Azure#22122)

* Prep azcore for release

* update perf test

* Increment package version after release of azcore (Azure#22124)

* [azopenai] Updating to the latest azcore to allow for supporting smaller time increments with retry-after-ms (Azure#22125)

* azblob: Updating dependencies (Azure#22128)

* Add version naming and deprecation link (Azure#21679)

* Add version naming and deprecation link

* Update MIGRATION_GUIDE.md

---------

Co-authored-by: Chenjie Shi <tadelesh.shi@live.cn>

* fix mgmt README.md module link (Azure#22132)

* Updating changelog for azblob 1.2.1 release (Azure#22140)

* [azopenai] Re-enable the tests for vision and expand it to include Azure. (Azure#22130)

- Do proper test recordings for audio so we can enable those.
- Bring back vision, and also target Azure.

Overall, this brings our test coverage back up to 32% from 24%.

Fixes Azure#21598

* Sanitize (Azure#22142)

* [Cosmos] Add Global Endpoint Manager (Azure#22100)

* gem implementation

* missed check on error

* not a new variable

* Update sdk/data/azcosmos/cosmos_global_endpoint_manager.go

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* Update sdk/data/azcosmos/shared_key_credential.go

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* test cleanup

* accept context for i/o bound request

* last test case, mutex fixes on lc/gem

* Update cosmos_global_endpoint_manager_test.go

* cleanup and extending update test

---------

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* Added replaceReadmeModule function (Azure#22135)

* Increment package version after release of storage/azblob (Azure#22146)

* Prevent panic in exported.Payload (Azure#22148)

Treat a nil response body as no body.

* Add Snapshot support for SDK (Azure#22118)

* remove generated

* Make base recording for snapshot tests. Customizable for local testing

* comment updates

* update test proxy

* Changes to Operation-Local header for test Proxy

* add comments

* add comments

* fix regional link

* changelog updates

* update changelog

* update version.go

* comment updates

* renamed variables/pre-make maps with known sizes for pager items

* omit pager from response/options

* Add notice for version 1 deprecation (Azure#21680)

* Add notice for version 1 deprecation

* Update README.md

---------

Co-authored-by: Chenjie Shi <tadelesh.shi@live.cn>

* [Release] sdk/resourcemanager/containerservice/armcontainerservice/4.7.0-beta.1 (Azure#22073)

* [Release] sdk/resourcemanager/containerservice/armcontainerservice/4.7.0-beta.1 generation from spec commit: b8c74fd80b415fa1ebb6fa787d454694c39e0fd5

* assets

---------

Co-authored-by: ReleaseHelper <ReleaseHelper>
Co-authored-by: Alancere <804873052@qq.com>

* [Release] sdk/resourcemanager/selfhelp/armselfhelp/2.0.0-beta.3 generation from spec commit: b8c74fd80b415fa1ebb6fa787d454694c39e0fd5 (Azure#22077)

Co-authored-by: ReleaseHelper <ReleaseHelper>

* [Release] sdk/resourcemanager/servicefabric/armservicefabric/2.0.0 (Azure#22079)

* [Release] sdk/resourcemanager/servicefabric/armservicefabric/2.0.0 generation from spec commit: b8c74fd80b415fa1ebb6fa787d454694c39e0fd5

* fix live_test

---------

Co-authored-by: ReleaseHelper <ReleaseHelper>
Co-authored-by: Alancere <804873052@qq.com>

* [Release] sdk/resourcemanager/postgresql/armpostgresqlflexibleservers/4.0.0-beta.4 (Azure#22104)

* [Release] sdk/resourcemanager/postgresql/armpostgresqlflexibleservers/4.0.0-beta.4 generation from spec commit: 90115af9fda46f323e5c42c274f2b376108d1d47

* Update CHANGELOG.md

---------

Co-authored-by: ReleaseHelper <ReleaseHelper>
Co-authored-by: Peng Jiahui <46921893+Alancere@users.noreply.github.com>

* [Release] sdk/resourcemanager/dataprotection/armdataprotection/3.0.0 (Azure#22074)

* [Release] sdk/resourcemanager/dataprotection/armdataprotection/3.0.0 generation from spec commit: b8c74fd80b415fa1ebb6fa787d454694c39e0fd5

* fix

---------

Co-authored-by: ReleaseHelper <ReleaseHelper>
Co-authored-by: Alancere <804873052@qq.com>

* [Release] sdk/resourcemanager/healthcareapis/armhealthcareapis/2.0.0 generation from spec commit: b8c74fd80b415fa1ebb6fa787d454694c39e0fd5 (Azure#22076)

Co-authored-by: ReleaseHelper <ReleaseHelper>

* [Release] sdk/resourcemanager/deviceupdate/armdeviceupdate/1.3.0 generation from spec commit: b8c74fd80b415fa1ebb6fa787d454694c39e0fd5 (Azure#22075)

Co-authored-by: ReleaseHelper <ReleaseHelper>

* [Release] sdk/resourcemanager/virtualmachineimagebuilder/armvirtualmachineimagebuilder/2.2.0 generation from spec commit: b8c74fd80b415fa1ebb6fa787d454694c39e0fd5 (Azure#22078)

Co-authored-by: ReleaseHelper <ReleaseHelper>

* [Release] sdk/resourcemanager/network/armnetwork/5.0.0 (Azure#22093)

* [Release] sdk/resourcemanager/network/armnetwork/5.0.0 generation from spec commit: 639ecfad68419328658bd4cfe7094af4ce472be2

* fix module version

* assets

---------

Co-authored-by: ReleaseHelper <ReleaseHelper>
Co-authored-by: Alancere <804873052@qq.com>

* [Release] sdk/resourcemanager/netapp/armnetapp/6.0.0-beta.1 generation from spec commit: 639ecfad68419328658bd4cfe7094af4ce472be2 (Azure#22092)

Co-authored-by: ReleaseHelper <ReleaseHelper>

* [Release] sdk/resourcemanager/batch/armbatch/2.2.0 generation from spec commit: 90115af9fda46f323e5c42c274f2b376108d1d47 (Azure#22103)

Co-authored-by: ReleaseHelper <ReleaseHelper>

* [Release] sdk/resourcemanager/compute/armcompute/5.4.0 (Azure#22114)

* [Release] sdk/resourcemanager/compute/armcompute/5.4.0 generation from spec commit: 60679ee3db06e93eb73faa0587fed93ed843d6dc

* assets

* assets

---------

Co-authored-by: ReleaseHelper <ReleaseHelper>
Co-authored-by: Alancere <804873052@qq.com>

* fix sdk/resourcemanager/connectedvmware/armconnectedvmware README (Azure#22162)

* feat: add ReplaceReadmeNewClientName function (Azure#22165)

* feat: add ReplaceReadmeNewClientName function

* fix

* [Release] sdk/resourcemanager/sql/armsql/2.0.0-beta.4 (Azure#22080)

* [Release] sdk/resourcemanager/sql/armsql/2.0.0-beta.4 generation from spec commit: b8c74fd80b415fa1ebb6fa787d454694c39e0fd5

* regenerate

---------

Co-authored-by: ReleaseHelper <ReleaseHelper>
Co-authored-by: Alancere <804873052@qq.com>

* sdk/resourcemanager/attestation/armattestation live test (Azure#22143)

* sdk/resourcemanager/iotcentral/armiotcentral live test (Azure#22123)

* sdk/resourcemanager/labservices/armlabservices live test (Azure#22115)

* sdk/resourcemanager/labservices/armlabservices live test

* gofmt

* sdk/resourcemanager/changeanalysis/armchangeanalysis live test (Azure#22095)

* sdk/resourcemanager/msi/armmsi live test (Azure#22094)

* sdk/resourcemanager/dnsresolver/armdnsresolver live test (Azure#22091)

* sdk/resourcemanager/dns/armdns live test (Azure#22089)

* sdk/resourcemanager/quota/armquota live test (Azure#22082)

* sdk/resourcemanager/chaos/armchaos live test (Azure#22070)

* sdk/resourcemanager/chaos/armchaos live test

* fix

* sdk/resourcemanager/loadtesting/armloadtesting live test (Azure#22106)

* Azdatalake stg 78-82 (Azure#22192)

* STG 82 swagger update, azcore, azidentity dependancy updates (Azure#22000)

* corrected release date in changelog

* STG84 swagger and azcore, azidentity, azblob dependency updates

* dependancy updates

* indirect dependancy

* update code generator version

* using STG 82 swagger, and revert code gen version

* adding transforms for missing header files

* re-generate zz_options.go file

* reverting to azblob 1.1.0

* reverting to azblob 1.0.0

* Updated input file from main to latest commit id

* Encryption scope SAS (Azure#22099)

* corrected release date in changelog

* STG84 swagger and azcore, azidentity, azblob dependency updates

* dependancy updates

* Initial changes for encryption scope sas

* indirect dependancy

* update code generator version

* using STG 82 swagger, and revert code gen version

* adding transforms for missing header files

* re-generate zz_options.go file

* reverting to azblob 1.1.0

* reverting to azblob 1.0.0

* Updated input file from main to latest commit id

* added tests for encryption scope sas

* add test for user delegation sas

* lint error fix

* Fix lint error in test

* created new datalake encryption scope var

* removed blob account encryption scope

* push recording

* add encryption scope in user delegation

* recordings

* linter error

* minor comments resolve

* arm template changes

* arm template changes

* test fix

---------

Co-authored-by: Sourav Gupta <souravgupta@microsoft.com>

* List system containers (Azure#22108)

* corrected release date in changelog

* list system containers test

* push recording

* push recording

* recording

* recordings

* Datalake CPK (Azure#22159)

* corrected release date in changelog

* datalake cpk

* Update CHANGELOG.md

add newline changelog

* download file & stream tests

* recordings

* recordings

* change to unrecorded test

* add negative tests for CPK

* [AzDatalake] Set Expiry (Azure#22170)

* corrected release date in changelog

* setExpiry for files

* lint error

* recordings

* create new sub directory (Azure#22177)

* Implement NewSubdirectoryClient

* Lowercase d in subDirectoryName

Co-authored-by: Gauri Prasad <51212198+gapra-msft@users.noreply.github.com>

* Make test recorded and add API calls

* Extend testing

* Add recorded tests

* Update recorded test

* doc

* Update assets.json

* create subdirectory client

* changelog

* revert to unrecorded test

---------

Co-authored-by: Adele Reed <adreed@microsoft.com>
Co-authored-by: adreed-msft <49764384+adreed-msft@users.noreply.github.com>
Co-authored-by: Gauri Prasad <51212198+gapra-msft@users.noreply.github.com>

* [AzDatalake] Blob swagger update to latest 2021-12-02 (Azure#22178)

* blob swagger update to latest 2021-12-02

* Update sdk/storage/azdatalake/internal/generated_blob/autorest.md

Co-authored-by: Sourav Gupta <98318303+souravgupta-msft@users.noreply.github.com>

* unmarshall-xml list blobs

* unmarshall-xml list blobs

---------

Co-authored-by: Sourav Gupta <98318303+souravgupta-msft@users.noreply.github.com>

* service version update

* service version upgrade

---------

Co-authored-by: Sourav Gupta <souravgupta@microsoft.com>
Co-authored-by: Adele Reed <adreed@microsoft.com>
Co-authored-by: adreed-msft <49764384+adreed-msft@users.noreply.github.com>
Co-authored-by: Gauri Prasad <51212198+gapra-msft@users.noreply.github.com>
Co-authored-by: Sourav Gupta <98318303+souravgupta-msft@users.noreply.github.com>

* azidentity credentials preserve MSAL headers (Azure#22098)

* [azdatalake] upgrade azblob version to 1.21 (Azure#22196)

* upgrade to latest version of azblob with test fixes

* upgrade to latest version of azblob with test fixes

# Conflicts:
#	sdk/storage/azdatalake/go.mod
#	sdk/storage/azdatalake/go.sum

* upgrade to latest version of azblob with test fixes

* changelog update

* removed dead code

* recordings

* test fix

* Various cleanup in azappconfig (Azure#22197)

Convert slices of types in-place.
Fixed up parameter name for creating snapshots.
Correct casing for ETag.
Removed duplicate KeyValueFilter type.
Add spans for new APIs.

* Update package versions (Azure#22201)

* Update package versions

* upgrade to MSAL v1.2.1

* add token_type to fake tokens

* revert debugging

---------

Co-authored-by: Charles Lowell <10964656+chlowell@users.noreply.github.com>

* Increment package version after release of messaging/azeventgrid (Azure#22060)

* Increment package version after release of ai/azopenai (Azure#22126)

* azblob: STG91 upgrade (Azure#22194)

* azfile: STG91 upgrade (Azure#22193)

* update source link to new azopenai location (Azure#22208)

* link current instead of depricated path

* remove newline at end of file

* More azappconfig cleanup (Azure#22209)

* More azappconfig cleanup

Update BeginCreateSnapshot to return the complete Snapshot type.
Remove unused response types.
Added some missed error checking in a few tests.

* fix a few doc comments

* Fix spelling (preceeding=> preceding) (Azure#22202)

Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>

* Storage: Reject HTTP endpoints (Azure#22183)

* [azeventhubs] Fixing an issue where a processor wouldn't grab partitions (Azure#22153)

The processor load balancer had a bug where a processor would not claim partitions even if it didn't yet have the proper share.

Added in stress tests (balance, multibalance) to run several scenarios with our supported strategies and different parallel owners.

Fixes Azure#22097

* Clean up ETags in azappconfig (Azure#22212)

Use azcore.ETag instead of string for public surface area.
Add doc comments for non-standard ETag option names.

* [azopenai] Fixing issue where you can't use whisper with m4a files. (Azure#22210)

Fixing issue where you can't use whisper with m4a files.

* It's one of the formats that doesn't seem to be recognized without an explicit file extension, which you can pass via Filename
* My tests were too heavily dependent on implementation details of the models. Changing this out to check that things are working correctly without checking the exact contents of the response.
* Also, rerecorded tests since we're doing multiple audio tests as well.

Fixes Azure#22195

* Updating changelog for STG91 preview (Azure#22216)

* azfile: STG 91 Preview (Azure#22217)

* Increment package version after release of storage/azblob (Azure#22219)

* [azopenai] Update changelog for release. (Azure#22215)

* Replace string with azcore.ETag (Azure#22218)

Missed one in last round of clean-up.

* Add script to go mod tidy modules (Azure#22214)

Will tidy all modules under the current working directory or under the
specified directory.

* Increment package version after release of storage/azfile (Azure#22220)

* Added Simon and Kushagra as code owners on GO Cosmos SDK (Azure#22221)

* [azservicebus] Updating batching to allow for a configurable wait time (Azure#22154)

Updating batching to allow for a configurable wait time. Can lead to fuller batches for people that want to tune it.

Fixes Azure#19172

* Sync eng/common directory with azure-sdk-tools for PR 7459 (Azure#22222)

* check for the presence of a compatible powershell. ensure that we always return a list of tags

* allow the script to require pshell6+

* remove the en-us from the link

---------

Co-authored-by: Scott Beddall (from Dev Box) <scbedd@microsoft.com>

* Fix image tag for multiimage deployments (Azure#22224)

Co-authored-by: Liudmila Molkova <limolkova@microsoft.com>

* Refresh azcontainerregistry module (Azure#22161)

* upgrade to latest codegen

* merge resolver

* enable span and add changelog

* update module name

* fix generator tool (Azure#22205)

* fix generator tool

* gofmt

* fix

* goimports

* azdatalake preview stg82 (Azure#22227)

* Rename azidentity/cache pipeline (Azure#22231)

* Handle errors in mod tidy script (Azure#22234)

* Sync eng/common directory with azure-sdk-tools for PR 7445 (Azure#22233)

* Add package filter parameter to select recursively found packages in release

* Handle empty value for packageFilter

---------

Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* Use package filter to prevent recursive package publish (Azure#22232)

* [Cosmos] Add preferred regions to CosmosClientOptions (Azure#22206)

* added to client options, added sample

* pointers lol

* Update example_test.go

* Sync eng/common directory with azure-sdk-tools for PR 7451 (Azure#22246)

* Added script and pipeline for spec location validation

SDK release pipeline would run this validation to ensure the spec comes from
the main branch of Azure/azure-rest-api-specs repo

* Update parameter

* Use github rest api to validate commit

* Added token parameter

* Support more yaml cases and other languages

* Removed the default setting in yaml template

* Only validate in case of GA package

* Follow APIView to retrieve package version for verification

* Get github token from env variable

* Removed obsolete parameter

---------

Co-authored-by: raychen <raychen@microsoft.com>

* Correct the variable name in spec location validation script (Azure#22247)

Co-authored-by: raychen <raychen@microsoft.com>

* Increment package version after release of storage/azdatalake (Azure#22229)

* sdk/resourcemanager/storagecache/armstoragecache live test (Azure#22244)

* [CODEOWNERS] Remove automation section (Azure#22249)

The focus of these changes is to remove the automation section, as CODEOWNERS changes no longer require manual syncing.

* Increment package version after release of messaging/azeventhubs (Azure#22251)

* Add selective component governance step (Azure#22150)

* Add selective component governance step

* Use globals.yml in analyze job

* Filter packages at verify step (Azure#22252)

Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* [azservicebus] Fixing memory leak with go-amqp update. (Azure#22253)

go-amqp got a fix recently that replaces its internal tracking map with a counter, which eliminates a rare memory leak we'd see if you were settling a message on a separate receiver _while_ the other receiver was still alive.

In recovery scenarios, we discard the old Receiver instance, making this a non-issue for our typical use case.

Fixes Azure#22157

* Sync eng/common directory with azure-sdk-tools for PR 7512 (Azure#22241)

* generate an artifact with the updated files

* bring in Wes's feedback

---------

Co-authored-by: Scott Beddall (from Dev Box) <scbedd@microsoft.com>

* [Cosmos] Adds global endpoint manager policy and links GEM to client (Azure#22223)

* added policy and linked gem to client

* refactor go routine for CI pipeline lint

* remove debugging print statement

* changed to internal pipeline, updated tests

* removed unneeded code

* saved apiVersion into constant, changed all explicit uses to constant

* add gem policy emulator test

* small changes to the test

* clean up test

* pass preferred regions

* removed excess comments

* add nil check to client options for preferred regions

* [azservicebus] Adjust version and changelog, small test change (Azure#22256)

* Adjust version and changelog.
* Make a test a bit more robust by creating a larger set of messages to pull.

* Fix allowed tenants for InteractiveBrowserCredential (Azure#22257)

* [azopenai] Implement UnmarshalJSON method for custom types (Azure#22133)

A UnmarshalJSON method has been added to the ChatCompletionsToolChoice and ChatRequestUserMessageContent structs. These implementations allow the structs to satisfy the json.Unmarshaller interface, enabling them to decode JSON directly into their respective types.

* Increment package version after release of messaging/azservicebus (Azure#22260)

* Prepare azidentity v1.6.0-beta.1 for release (Azure#22248)

* Increment package version after release of azidentity (Azure#22263)

* Update release date for azappconfig (Azure#22259)

* Update release date for azappconfig

* update to latest azcore

* fix LRO options type name

* more example cleanup

* Sync eng/common directory with azure-sdk-tools for PR 7537 (Azure#22264)

* Add ConflictedFile to git-helpers.ps1, add git-helpers.tests.ps1 to exercise basic functionality.
* Add `resolve-asset-conflict.ps1` a script that can autoresolve an assets.json file.

---------

Co-authored-by: Scott Beddall (from Dev Box) <scbedd@microsoft.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* Update tooling and sample dependencies (Azure#22267)

* Update tooling and sample dependencies

Set Go version to 1.18 to prevent CG from scanning go.sum files.
This should clean up issues flagged by CG.

* skip Go 1.18 from generator build

one of its dependencies requires Go 1.19 or later.

* add ExcludeGoNMinus2 param to eng job

* Increment package version after release of data/azappconfig (Azure#22268)

* Update dependencies in deprecated modules (Azure#22269)

* Update dependencies in deprecated modules

To reduce noise in CG.

* fix broken links

* Update to latest version of websockets (Azure#22270)

CG clean-up.

* Add git commit details to stress environment (Azure#22266)

Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* Fix Language value for JS (Azure#22275)

Co-authored-by: raychen <raychen@microsoft.com>

* Fix typos in ps1 scripts (Azure#22277)

Co-authored-by: Lukasz Kokot <lkokot@kumojin.com>

* use merge instead of cherry-pick (Azure#22280)

Co-authored-by: Scott Beddall (from Dev Box) <scbedd@microsoft.com>

* Broaden special case for 403 responses from IMDS (Azure#22278)

* Storage/fix Module Name in azfile, azdatalake, azblob (Azure#22273)

* fixModuleName adls

* fixModuleName blob, file and test case

* linter error

* test fix

* azblob module name change

* azblob

* azfile lint error fix

* comments address

* [Release] sdk/resourcemanager/recoveryservices/armrecoveryservicesbackup/4.0.0 (Azure#22107)

* [Release] sdk/resourcemanager/recoveryservices/armrecoveryservicesbackup/4.0.0 generation from spec commit: d402f685809d6d08be9c0b45065cadd7d78ab870

* fix

* [Release] sdk/resourcemanager/cosmos/armcosmos/2.7.0 (Azure#22184)

* [Release] sdk/resourcemanager/cosmos/armcosmos/2.7.0 generation from spec commit: 41e4538ed7bb3ceac3c1322c9455a0812ed110ac

* fix module version

* assets

---------

Co-authored-by: ReleaseHelper <ReleaseHelper>
Co-authored-by: Alancere <804873052@qq.com>

* [Release] sdk/resourcemanager/hybridcontainerservice/armhybridcontainerservice/1.0.0 generation from spec commit: 41e4538ed7bb3ceac3c1322c9455a0812ed110ac (Azure#22186)

Co-authored-by: ReleaseHelper <ReleaseHelper>

* [Release] sdk/resourcemanager/containerservice/armcontainerservice/4.7.0 (Azure#22271)

* [Release] sdk/resourcemanager/containerservice/armcontainerservice/4.7.0 generation from spec commit: 8b5618d760532b69d6f7434f57172ea52e109c79

* assets

* [Release] sdk/resourcemanager/compute/armcompute/5.5.0 (Azure#22188)

* [Release] sdk/resourcemanager/compute/armcompute/5.5.0 generation from spec commit: 41e4538ed7bb3ceac3c1322c9455a0812ed110ac

* assets

---------

Co-authored-by: ReleaseHelper <ReleaseHelper>
Co-authored-by: Alancere <804873052@qq.com>

* [Release] sdk/resourcemanager/elasticsan/armelasticsan/1.0.0 (Azure#22225)

* [Release] sdk/resourcemanager/elasticsan/armelasticsan/1.0.0 generation from spec commit: 907b79c0a6a660826e54dc1f16ea14b831b201d2

* update changelog

---------

Co-authored-by: ReleaseHelper <ReleaseHelper>
Co-authored-by: Alancere <804873052@qq.com>

* [Release] sdk/resourcemanager/streamanalytics/armstreamanalytics/2.0.0-beta.1 (Azure#22198)

* [Release] sdk/resourcemanager/streamanalytics/armstreamanalytics/2.0.0-beta.1 generation from spec commit: fa469a1157c33837a46c9bcd524527e94125189a

* assets

---------

Co-authored-by: ReleaseHelper <ReleaseHelper>
Co-authored-by: Alancere <804873052@qq.com>

* update changelog (Azure#22289)

* Sync eng/common directory with azure-sdk-tools for PR 7580 (Azure#22292)

* Support creating resources with user auth

* Log warning if TestApplicationId is set

* missing space

* regenerate md file

* Rename

* Update link

---------

Co-authored-by: jolov <jolov@microsoft.com>

* [Release] sdk/resourcemanager/networkanalytics/armnetworkanalytics/1.0.0 (Azure#22291)

* [Release] sdk/resourcemanager/networkanalytics/armnetworkanalytics/1.0.0 generation from spec commit: 21a8d55d74e4425e96d76e5835f52cfc9eb95a22

* update changelog

* fix acr test failure (Azure#22290)

* Sync eng/common directory with azure-sdk-tools for PR 7569 (Azure#22284)

* Correct the name of JS package folder

* Uncomment the package verification

* Logging more info for troubleshooting

* Get sdkType and directory from the package info

---------

Co-authored-by: Ray Chen <raychen@microsoft.com>

* Increment package version after release of containers/azcontainerregistry (Azure#22295)

* Sync eng/common directory with azure-sdk-tools for PR 7584 (Azure#22298)

* Fix role assignment for user auth

* PR fb

* Apply suggestions from code review

Co-authored-by: Heath Stewart <heaths@outlook.com>

---------

Co-authored-by: jolov <jolov@microsoft.com>
Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com>
Co-authored-by: Heath Stewart <heaths@outlook.com>

* AzureCLICredential prefers expires_on value (Azure#22299)

* [Release] sdk/resourcemanager/hardwaresecuritymodules/armhardwaresecuritymodules/2.0.0-beta.1 (Azure#22185)

* [Release] sdk/resourcemanager/hardwaresecuritymodules/armhardwaresecuritymodules/2.0.0-beta.1 generation from spec commit: 41e4538ed7bb3ceac3c1322c9455a0812ed110ac

* update directive

---------

Co-authored-by: ReleaseHelper <ReleaseHelper>
Co-authored-by: Alancere <804873052@qq.com>

* [Release] sdk/resourcemanager/appplatform/armappplatform/2.0.0 (Azure#22236)

* [Release] sdk/resourcemanager/appplatform/armappplatform/2.0.0 generation from spec commit: 685aad3f33d355c1d9c89d493ee9398865367bd8

* update live test and assets

---------

Co-authored-by: ReleaseHelper <ReleaseHelper>
Co-authored-by: Alancere <804873052@qq.com>

* [Release] sdk/resourcemanager/datafactory/armdatafactory/5.0.0 generation from spec commit: be0d1c383d683a8eb22ab5fd5b75e380ac3c2eea (Azure#22203)

Co-authored-by: ReleaseHelper <ReleaseHelper>

* [Release] sdk/resourcemanager/cosmos/armcosmos/3.0.0-beta.3 (Azure#22300)

* [Release] sdk/resourcemanager/cosmos/armcosmos/3.0.0-beta.3 generation from spec commit: 6f8faf5da91b5b9af5f3512fe609e22e99383d41

* assets

* JSON marshaling helpers will preserve Content-Type (Azure#22309)

* JSON marshaling helpers will preserve Content-Type

The codegen for TypeSpec can explicitly set the Content-Type header. We
must prefer this value when set.

* fix doc comment

* Sync eng/common directory with azure-sdk-tools for PR 7585 (Azure#22312)

* Remove package retrieval when verify pkg version

* Modified description of PackageName parameter

---------

Co-authored-by: Ray Chen <raychen@microsoft.com>

* Go SDK for Azure Web PubSub Data plane (Azure#21929)

* generated codespec for web pubsub

* Updating readme and autorest

* Adding custom client and test code

* Add GenerateClientAccessUrl

* Resolve comments

* resolve comments

* Update readme

* fix some comments, remove hub parameter when constructing the client, and add HealthAPIClient constructions

* Fix go vet error

* Fix test failure

* Fix comments

* Adding recording

* Use asset repo

* Remove skip

* Fix comment

* adding main test logic to start the test-proxy

* update CI settings

* Fix test failure

* Update link to temp URL to pass CI

* Fix doc comment

* Update CHANGELOG.md

* resolve comments

* Update sdk/messaging/azwebpubsub/ci.yml

Co-authored-by: Rick Winter <rick.winter@microsoft.com>

* Update sdk/messaging/azwebpubsub/sample.env

Co-authored-by: Rick Winter <rick.winter@microsoft.com>

* Resolving comments

* resolve comments

* remove healthclient

* Resolve comments

---------

Co-authored-by: MBSolomon <89044647+MBSolomon@users.noreply.github.com>
Co-authored-by: Rick Winter <rick.winter@microsoft.com>

* Added spec location verification to the release pipeline (Azure#22301)

* publish package info as artifact

* Added the same condition as previous step

* [Release] sdk/resourcemanager/springappdiscovery/armspringappdiscovery/0.1.0 (Azure#22187)

* [Release] sdk/resourcemanager/springappdiscovery/armspringappdiscovery/0.1.0 generation from spec commit: 41e4538ed7bb3ceac3c1322c9455a0812ed110ac

* Update release date

---------

Co-authored-by: ReleaseHelper <ReleaseHelper>
Co-authored-by: Peng Jiahui <46921893+Alancere@users.noreply.github.com>

* Replace ErrAuthenticationRequired with AuthenticationRequiredError (Azure#22317)

* Sync eng/common directory with azure-sdk-tools for PR 7615 (Azure#22335)

* Prepare-Release.ps1: Make dateTime.ToString("MM/dd/yyyy") to work on exotic set-ups

On my machine, I experimented with the registry, and the worst part is that I don't remember/know how to reset it back.

The work items that script produces, do have datetimes for the upcoming releases in the `MM-dd-yyyy` format, and then I have to correct them by hand.

`dateTime.ToString("MM/dd/yyyy")` does produce the date in the format of `MM-dd-yyyy` on my machine. This also happens if I write a corresponding .NET app.

The fix that I am proposing makes it work on my specific setup and hopefully breaks no one else. I understand if you are hesitant to take it. Let me know, I'll see how I can restore my setting.

But on the other hand, I don't think it makes anything worse, it only makes things more robust, so maybe take it?

* Use [CultureInfo]::InvarialtCulture

Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>

* Update eng/common/scripts/Prepare-Release.ps1

* Update eng/common/scripts/Prepare-Release.ps1

---------

Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>

* Fix issue in Verify-Link.ps1 after PS 7.4 update (Azure#22336)

https://learn.microsoft.com/en-us/powershell/scripting/whats-new/what-s-new-in-powershell-74?view=powershell-7.4
- Add AllowInsecureRedirect switch to Web cmdlets (Azure#18546)

That new option cause a new exception type that exposed
a bug where we assumed if InnerException property existed
that it was not null. This fix verifies that the property
is not null.

Co-authored-by: Wes Haggard <Wes.Haggard@microsoft.com>

* Update packages (Azure#22338)

* Prepare internal for release (Azure#22339)

* Update package dependencies (Azure#22337)

* Update package dependencies

* mod tidy on test package

* [AzDatalake] Path escape names to file and directory client (Azure#22308)

* path escape names to file and directory client

* split path and escape logic

* recordings

* recordings

* refactor

* add new tests

* Prepare azidentity v1.6.0-beta.2 for release (Azure#22341)

* Fix BOM issue Generate-DocIndex.ps1 (Azure#22340)

Co-authored-by: Daniel Jurek <djurek@microsoft.com>

* Sync eng/common directory with azure-sdk-tools for PR 7634 (Azure#22348)

* Fix sparse-checkout git command line behavior

* Use command arg parsing behavior in sparse-checkout.yml

---------

Co-authored-by: Daniel Jurek <djurek@microsoft.com>

* Sync eng/common directory with azure-sdk-tools for PR 7630 (Azure#22349)

* Add ContentType header to Update-GitHubIssue

* replaced application/json

* Update eng/common/scripts/Invoke-GitHubAPI.ps1

Co-authored-by: Daniel Jurek <djurek@microsoft.com>

---------

Co-authored-by: Peng Jiahui <804873052@qq.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
Co-authored-by: Daniel Jurek <djurek@microsoft.com>

* Fix azblob/download data race (Azure#22334)

* data race while downloadFile

* changelog update

* cast variable type

* Increment package version after release of internal (Azure#22351)

* Update to latest internal module (Azure#22149)

* Update to latest internal module

Add test for ResponseError with nil response body.

* go mod tidy

* prep for release

* Increment package version after release of azidentity (Azure#22352)

* Increment package version after release of azcore (Azure#22353)

* Update armresourcehealth with latest code generator (Azure#22354)

Fixes an issue with parsing ISO8601 time formats.

* [azblob] Fix file offset post sequential write in downloadFile (Azure#22357)

* fix file offset post download

* changelog update

* lint error fix

* error verifications add

* file pointer check in test case

* check error from seek function call

* [azblob] Fix panic when nil options bag is passed (Azure#22358)

* Fix panic when nil options bag is passed

* revert variable name change

* Cosmos DB: Fixing encoding test (Azure#22359)

* Pin azure/login action step to v1.5.1 (Azure#22362)

Co-authored-by: James Suplizio <jasupliz@microsoft.com>

* Add stress test arm/bicep template prefix to New-TestResources ResourceType set (Azure#22365)

Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* STG 91 GA [azfile, azblob], azcore version refresh (Azure#22361)

* refresh azcore version, module version upgrade

* Azfile STG91 GA

* azcore version update in azfile

* indirect dependancy update

* azblob testdata indirect dependancy update

* release date change - azblob CHANGELOG.md

* release date change - azfile CHANGELOG.md

* Update release date - azblob

* Update release date azfile

* fix flaky test (Azure#22367)

* Increment package version after release of storage/azfile (Azure#22374)

* Increment package version after release of storage/azblob (Azure#22375)

* Revert test change - new file handle open on downloadfile (Azure#22373)

* revert new file handle open change on downloadfile

* revert new file handle open change on downloadfile

* azblob, azcore. azidentity dependancy updates

* changelog updates

* changelog updates

* [key vault] update modules to the 7.5 GA swagger (Azure#22376)

* regen

* test recordings

* update date

* update version

* fix dates

* Increment package version after release of security/keyvault/azsecrets (Azure#22381)

* Increment package version after release of security/keyvault/azcertificates (Azure#22380)

* Increment package version after release of security/keyvault/azkeys (Azure#22383)

* Increment package version after release of security/keyvault/azadmin (Azure#22382)

* Fix case-sensitive spelling in scripts that get deployed to C++ repo (Azure#22379)

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>

* changelog update (Azure#22384)

* Move emitter-package.json scripts to eng/common (Azure#22387)

Co-authored-by: Patrick Hallisey <pahallis@microsoft.com>

* [azservicebus] Fixing a memory leak when doing cross receiver settlement. (Azure#22368)

Fixing a memory leak when doing cross receiver settlement.

go-amqp holds onto some tracking data that won't get cleared if we don't try to settle through the original Receiver. Our fix in here, combined with go-amqp's changes to route to the original receiver, should seal that up.

Benchmark added that also doubles as a stress test.

Fixes Azure#22318

* [monitor query] move metrics dataplane to new azmetrics module (Azure#22366)

* move code

* add files

* cleanup code

* added tests

* license

* update code coverage

* charles feedback

* charles feedback

* Increment package version after release of monitor/query/azmetrics (Azure#22389)

* Update CI to the latest two versions of Go (Azure#22395)

* Update CI to the latest two versions of Go

* bump to latest golangci-lint

* Codeowner update (Azure#22397)

* Codeowner update

* Update .github/CODEOWNERS

* Update .github/CODEOWNERS

* Increment package version after release of storage/azdatalake (Azure#22392)

* Update GitHubEventProcessorVersion (Azure#22403)

Co-authored-by: James Suplizio <jasupliz@microsoft.com>

* Updates to tools for the CodeownersUtils updates (Azure#22404)

Co-authored-by: James Suplizio <jasupliz@microsoft.com>

* Disable code coverage redesign in CI (Azure#22402)

* Disable code coverage redesign in CI

Go 1.22 changed some code coverage internals which is causing some cases
to under-report coverage. Disabling for now until this is resolved.

* conditionally set env var

* tweak

* move to build matrix

* update test regex

* Add GOEXPERIMENT to live test matrix

* Swap matrix order for display name consistency

---------

Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* Fix potential race between NullValue and IsNullValue (Azure#22410)

Note that since IsNullValue is on a hot path, it must never block in the
common case.

* SetBodilessMatcher & SetDefaultMatcher take RecordingOptions (Azure#22405)

* upgrade script autorest.go version (Azure#22413)

* Storage: Re-enable HTTP endpoints for shared key credential (Azure#22401)

* Switch to errors.Join (Azure#22429)

* Updates to packages (Azure#22430)

* Update packages 
  - aztables
  - azeventgrid
  - azqueue

* Tidy up the perf tests

* Package updates (Azure#22431)

* Add logging event EventResponseError (Azure#22411)

* Add logging event EventResponseError

This event is logged whenever an azcore.ResponseError is created. The
contents are from ResponseError.Error().
Add NewResponseErrorWithErrorCode to support creating ResponseErrors
when the error code is in a non-standard location.

* cleanup

* verify no extra logs

* Update packages (Azure#22432)

* Update azcosmos (Azure#22434)

* [azopenai] Adding in an example for gpt-4-vision. (Azure#22439)

Fixes Azure#22436

* Update arm internal package versions (Azure#22440)

* Updating ARM package dependencies (Azure#22435)

* Update github-event-processor version (Azure#22445)

Co-authored-by: James Suplizio <jasupliz@microsoft.com>

* Some cleanup in aztables (Azure#22443)

* Some cleanup in aztables

Moved options and response types to their respective files.
Helper funcs that were used in one place have been removed, their
contents made inline.
Replaced appending to slices with making the correct size and populating
them in place.

* fixed up a few more append cases

* resource-type added (Azure#22425)

* Exposing x-ms-resource-type response header in GetProperties API for file and directory

* [azsystemevents] Generation of package for Azure Event Grid system events (Azure#22400)

Azure Event Grid system events, now in standalone package form.

* More cleanup in aztables (Azure#22453)

Moved constant definitions to constants.go.
Moved struct definitions to models.go.
Moved internal helper funcs next to their types.

* [Release] sdk/resourcemanager/apicenter/armapicenter/1.0.0 (Azure#22422)

* [Release] sdk/resourcemanager/apicenter/armapicenter/1.0.0 generation from spec commit: d4205894880b989ede35d62d97c8e901ed14fb5a

* update

* [Release] sdk/resourcemanager/storagecache/armstoragecache/3.4.0-beta.1 (Azure#22419)

* [Release] sdk/resourcemanager/storagecache/armstoragecache/3.4.0-beta.1 generation from spec commit: d4205894880b989ede35d62d97c8e901ed14fb5a

* update assets

* [Release] sdk/resourcemanager/network/armnetwork/5.1.0 (Azure#22418)

* [Release] sdk/resourcemanager/network/armnetwork/5.1.0 generation from spec commit: d4205894880b989ede35d62d97c8e901ed14fb5a

* update assets

* [Release] sdk/resourcemanager/recoveryservices/armrecoveryservicessiterecovery/2.3.0 (Azure#22421)

* [Release] sdk/resourcemanager/recoveryservices/armrecoveryservicessiterecovery/2.3.0 generation from spec commit: d4205894880b989ede35d62d97c8e901ed14fb5a

* add removeUnreferencedTypes flag

* update

* [Release] sdk/resourcemanager/alertsmanagement/armalertsmanagement/0.10.0 (Azure#22451)

* [Release] sdk/resourcemanager/alertsmanagement/armalertsmanagement/0.10.0 generation from spec commit: 6d2438481021a94793b07b226df06d5f3c61d51d

* add removeUnreferencedTypes flag

* [Release] sdk/resourcemanager/astro/armastro/0.1.0 (Azure#22414)

* [Release] sdk/resourcemanager/astro/armastro/1.0.0 generation from spec commit: d4205894880b989ede35d62d97c8e901ed14fb5a

* update to v0.1.0

* [Release] sdk/resourcemanager/largeinstance/armlargeinstance/0.1.0 generation from spec commit: 6051d2b126f5b1e4b623cde8edfa3e25cf730685 (Azure#22427)

* Update release date (Azure#22407)

* Escape semicolons in query params before parsing (Azure#22460)

For compat reasons, url.ParseQuery will reject semicolons within query
params. So, we must escape them first.

* Update version of github-event-processor (Azure#22461)

Co-authored-by: James Suplizio <jasupliz@microsoft.com>

* Updates to tools for CodeownerUtils updates (Azure#22463)

Co-authored-by: James Suplizio <jasupliz@microsoft.com>

* Add EnforceMaxLifeOfIssues to event-processor.config set to Off (Azure#22465)

* Allow relative EmitterPackageJsonPath in New-EmitterPackageLock.ps1 (Azure#22454)

Co-authored-by: Patrick Hallisey <pahallis@microsoft.com>

* Move to latest azcore (Azure#22462)

* [Release] sdk/resourcemanager/redisenterprise/armredisenterprise/2.0.0 (Azure#22423)

* [Release] sdk/resourcemanager/redisenterprise/armredisenterprise/2.0.0 generation from spec commit: d4205894880b989ede35d62d97c8e901ed14fb5a

* go mod tidy

* [Release] sdk/resourcemanager/datafactory/armdatafactory/6.0.0 generation from spec commit: 6051d2b126f5b1e4b623cde8edfa3e25cf730685 (Azure#22428)

* azblob: Random write in DownloadFile (Azure#22459)

* azblob: Updating changelog for azblob 1.3.1 release (Azure#22467)

* Clean up lint in aztables (Azure#22470)

Fixed some unused parameters.

* Increment package version after release of storage/azblob (Azure#22471)

* NewListEntitiesPager fix (Azure#22469)

* NewListEntitiesPager fix

Per the docs, if there are no continuation header values, there are no
more entities to return.

* simplify return

* Update azappconfig with latest code generator (Azure#22473)

* [aznamespaces] Moving to new folder site, updating readme and autorest (Azure#22441)

This creates a new module to house the Event Grid Namespaces client that used to be in the root of the `messaging/azeventgrid` module.

* azfile, azdatalake: Updating the type of number of chunks to uint64 (Azure#22468)

* Add MatchConditions to azcore (Azure#22476)

* Updating changelog for v1.2.1 release (Azure#22478)

* Updates for aztables metadata (Azure#22472)

Include returned metadata in more APIs.
Make the amount of returned metadata configurable.

* Updating changelog for v1.1.1 release (Azure#22479)

* Prep azcore for release (Azure#22481)

* Prep azcore for release

* fix type-o in comment

* Sync eng/common directory with azure-sdk-tools for PR 7682 (Azure#22455)

* Support resolving environment variable references in matrix config

* Improve type and null handling

* Fix reference bug

* Change behavior on missing env vars to throw

---------

Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* Increment package version after release of azcore (Azure#22488)

* Update github-event-processor ver to 1.0.0-dev.20240229.2 (Azure#22489)

Co-authored-by: James Suplizio <jasupliz@microsoft.com>

* Don't error on empty time value (Azure#22485)

* Don't error on empty time value

Exit early if the value is empty.

* improve regex to avoid duplication

* [azeventgrid] Standalone package for Event Grid Basic (Azure#22458)

Event Grid Basic is the "non-namespace" version of Event Grid. It'll be published in the same package as the other languages under 'messaging/eventgrid/azeventgrid'.

* Increment package version after release of storage/azdatalake (Azure#22486)

* Increment package version after release of storage/azfile (Azure#22484)

* Fix matrix CI tests (Azure#22390)

Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* [Cosmos] Add logging changes and sample (Azure#22288)

* adds changes to client pipeline and readme sample

* fixed padding and improved ReadMe sample

* moved headers to cosmos_headers, lowercased values

* changes for fully working diagnostics

* Update README.md

* use latest azcore version

* Update README.md

* Update cosmos_client_test.go

* Fix EnforceMaxLifeOfIssues event and run time (Azure#22513)

Co-authored-by: James Suplizio <jasupliz@microsoft.com>

* [azservicebus, azeventhubs] Updating to take in the new AMQP version to fix issue with sessions taking 26s to close (Azure#22509)

Pulling in a new AMQP version with my fix for the "body size < frame size" that would cause to hang for 26 seconds while closing a session on a link that was idle.

Fixes Azure#21684

* Sync eng/common directory with azure-sdk-tools for PR 7758 (Azure#22516)

* Add 1es changes for job/matrix generation and publish

* Use more flexible pool filter for prev/next pool matches

* consolidate displayname definition

* use linux pool variables for generate matrix job

* Fix publish artifact

* Use single publish task for publish artifact

---------

Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* [azopenai] Updating for the 2024-02-15-preview (Azure#22447)

Generating based off the latest preview surface (2024-02-15).

TTS is the big feature for this revision and there have been some minor renames for some of the BYOD options.

Fixes Azure#22444

* [azblob] Pageblob documentation fix (Azure#22520)

* documentation fixes

* remove testcommon from examples.go

* add random data to page blob instead of empty blob

* [azopenaiassistants] Azure OpenAI assistants (Azure#22369)

First release of OpenAI assistants - compatible with both OpenAI and Azure OpenAI.

* [azeventgrid(s)] Regenerating azsystemevents based on latest commit, updating CHANGELOG dates for release. (Azure#22514)

- Prepping all the eventgrid packages for release. All of these releases are betas.
- Regenerating the azsystemevents package based on the latest commit.

* Sync eng/common directory with azure-sdk-tools for PR 7810 (Azure#22526)

* Run publish on failed or succeeded

* Expand agent os string detection

* Check agent job status env var for artifact name detection

* Add sbomEnabled flag to publish template

* Fix image and artifact name conditional

---------

Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* [azeventgrid(s)] go mod tidy should have happened. (Azure#22527)

* Increment package version after release of ai/azopenaiassistants (Azure#22525)

* Increment package version after release of ai/azopenai (Azure#22524)

* Increment package version after release of messaging/azservicebus (Azure#22521)

* Increment package version after release of messaging/azeventhubs (Azure#22522)

* Increment package version after release of messaging/eventgrid/aznamespaces (Azure#22528)

---------

Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Co-authored-by: Scott Beddall (from Dev Box) <scbedd@microsoft.com>
Co-authored-by: Peng Jiahui <46921893+Alancere@users.noreply.github.com>
Co-authored-by: Richard Park <51494936+richardpark-msft@users.noreply.github.com>
Co-authored-by: Sourav Gupta <98318303+souravgupta-msft@users.noreply.github.com>
Co-authored-by: Joel Hendrix <jhendrix@microsoft.com>
Co-authored-by: David Tesar <david.tesar@microsoft.com>
Co-authored-by: Chenjie Shi <tadelesh.shi@live.cn>
Co-authored-by: Rick Winter <rick.winter@microsoft.com>
Co-authored-by: Simon Moreno <30335873+simorenoh@users.noreply.github.com>
Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>
Co-authored-by: Matthew Solomon <89044647+MBSolomon@users.noreply.github.com>
Co-authored-by: Alancere <804873052@qq.com>
Co-authored-by: tanyasethi-msft <124860586+tanyasethi-msft@users.noreply.github.com>
Co-authored-by: Sourav Gupta <souravgupta@microsoft.com>
Co-authored-by: Adele Reed <adreed@microsoft.com>
Co-authored-by: adreed-msft <49764384+adreed-msft@users.noreply.github.com>
Co-authored-by: Gauri Prasad <51212198+gapra-msft@users.noreply.github.com>
Co-authored-by: Honza <dusek.honza@gmail.com>
Co-authored-by: Charles Lowell <10964656+chlowell@users.noreply.github.com>
Co-authored-by: Felix <9039899+fkarg@users.noreply.github.com>
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
Co-authored-by: Kushagra Thapar <kuthapar@microsoft.com>
Co-authored-by: Liudmila Molkova <limolkova@microsoft.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
Co-authored-by: raychen <raychen@microsoft.com>
Co-authored-by: Jesse Squire <jesse.squire@gmail.com>
Co-authored-by: xuanming.zhang <zxm282@gmail.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
Co-authored-by: Lukasz Kokot <lkokot@kumojin.com>
Co-authored-by: jolov <jolov@microsoft.com>
Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com>
Co-authored-by: Heath Stewart <heaths@outlook.com>
Co-authored-by: Liangying.Wei <lianwei@microsoft.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
Co-authored-by: Wes Haggard <Wes.Haggard@microsoft.com>
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
Co-authored-by: James Suplizio <jasupliz@microsoft.com>
Co-authored-by: Grace Wilcox <43627800+gracewilcox@users.noreply.github.com>
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
Co-authored-by: Patrick Hallisey <pahallis@microsoft.com>
Co-authored-by: ashruti-msft <137055338+ashruti-msft@users.noreply.github.com>
@github-actions github-actions bot locked and limited conversation to collaborators Apr 16, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Client This issue points to a problem in the data-plane of the library. customer-reported Issues that are reported by GitHub users external to the Azure organization. needs-team-attention Workflow: This issue needs attention from Azure service team or SDK team Service Bus
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants