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

Test for npm #1939

Closed
wants to merge 819 commits into from
Closed

Test for npm #1939

wants to merge 819 commits into from

Conversation

MaryGao
Copy link

@MaryGao MaryGao commented Oct 31, 2023

Packages impacted by this PR

Issues associated with this PR

Describe the problem that is addressed by this PR

What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?

Are there test cases added in this PR? (If not, why?)

Provide a list of related PRs (if any)

Command used to generate this PR:**(Applicable only to SDK release request PRs)

Checklists

  • Added impacted package name to the issue description
  • Does this PR needs any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here)
  • Added a changelog (if necessary)

kazrael2119 and others added 30 commits September 20, 2023 17:17
Bump GA minor version

### Packages impacted by this PR
@azure/communication-common

### Issues associated with this PR
N/A

### Describe the problem that is addressed by this PR
N/A

### What are the possible designs available to address the problem? If
there are more than one possible design, why was the one in this PR
chosen?
N/A

### Are there test cases added in this PR? _(If not, why?)_
N/A

### Provide a list of related PRs _(if any)_


### Command used to generate this PR:**_(Applicable only to SDK release
request PRs)_

### Checklists
- [ X ] Added impacted package name to the issue description
- [ ] Does this PR needs any fixes in the SDK Generator?** _(If so,
create an Issue in the
[Autorest/typescript](https://github.com/Azure/autorest.typescript)
repository and link it here)_
- [ X ] Added a changelog (if necessary)
### Packages impacted by this PR

@azure-rest/ai-content-safety

### Issues associated with this PR


### Describe the problem that is addressed by this PR


### What are the possible designs available to address the problem? If
there are more than one possible design, why was the one in this PR
chosen?


### Are there test cases added in this PR? _(If not, why?)_


### Provide a list of related PRs _(if any)_


### Command used to generate this PR:**_(Applicable only to SDK release
request PRs)_

### Checklists
- [ ] Added impacted package name to the issue description
- [ ] Does this PR needs any fixes in the SDK Generator?** _(If so,
create an Issue in the
[Autorest/typescript](https://github.com/Azure/autorest.typescript)
repository and link it here)_
- [ ] Added a changelog (if necessary)
Post release automated changes for azure-monitor-opentelemetry
…o ^1.4.0 (Azure#27191)

Since 1.4.1 core-util has not been released, and
Azure#26748 jumps from 1.4.0 to
1.5.0 core-util directly.. leads to CI failure at Azure#26748.

Instead of depending on the unreleased/fixed `1.4.1` version of
`core-util`...
Depending on `^1.4.0` is better and won't have other dependencies on
releases.
Azure#27187)

### Packages impacted by this PR

- `@azure-tools/test-recorder`

### Issues associated with this PR

- Fixes Azure#11379 (an issue from 2020!)

### Describe the problem that is addressed by this PR

Fixes a long-running issue recently rediscovered by @minhanh-phan. If we
have 2 environment variables in our `.env`, where one is a substring of
another, e.g.:

```sh
VAR_1=TestTestTest
VAR_2=Test
```

we can run into an issue where the shorter environment variable gets
replaced first in the recordng, causing the first variable to not be
sanitized properly. This causes issues in playback.

This PR fixes the issue by:
- Ordering the sanitizers applied by `envSetupForPlayback` by the length
of the environment variable value, in descending order, and
- Adding the sanitizers in a deterministic order instead of applying
them in parallel and using `Promise.all`.
…y tool (Azure#27144)

### Packages impacted by this PR

- `@azure-tools/dev-tool`

### Description

This is a quality-of-life change which makes inspecting recordings
easier. With the new asset sync flow, recordings are no longer stored in
the repo with each package. If you want to look at your recordings for
some reason (e.g. after re-recording to make sure you aren't leaking any
secrets), it takes a few extra steps to find them: navigate to the repo
root, look at the `.breadcrumb` file in the `.assets` folder, and then
use that to find the location of the recordings corresponding to your
package.

This PR improves that process by creating a symbolic link to the
recordings from each package, restoring the original flow.
There's an error from previous commit 
```
ERROR: Error reading "/mnt/vss/_work/1/s/common/config/rush/pnpm-lock.yaml":
  duplicated mapping key at line 4490, column -163:
      /[email protected]:
      ^
##[error]Bash exited with code '1'.
```

This PR fixes pnpm-lock.yaml by checking out to a good and old version
then run `rush update`.
…zure#27179)

### Packages impacted by this PR
@azure/monitor-opentelemetry-exporter

Warnings are displayed when using exporter because OTel recently added
validation for the metric name and these should not have spaces
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/api.md#instrument
)

### Packages impacted by this PR
@azure/openai

### Issues associated with this PR
https://portal.microsofticm.com/imp/v3/incidents/details/424851016/home

### Describe the problem that is addressed by this PR
The API renamed this property last minute

### What are the possible designs available to address the problem? If
there are more than one possible design, why was the one in this PR
chosen?
N/A

### Are there test cases added in this PR? _(If not, why?)_
Yes

### Provide a list of related PRs _(if any)_
N/A

### Command used to generate this PR:**_(Applicable only to SDK release
request PRs)_

### Checklists
- [x] Added impacted package name to the issue description
- [ ] Does this PR needs any fixes in the SDK Generator?** _(If so,
create an Issue in the
[Autorest/typescript](https://github.com/Azure/autorest.typescript)
repository and link it here)_
- [ ] Added a changelog (if necessary)
Post release automated changes for azure-monitor-query
### Packages impacted by this PR


### Issues associated with this PR


### Describe the problem that is addressed by this PR


### What are the possible designs available to address the problem? If
there are more than one possible design, why was the one in this PR
chosen?


### Are there test cases added in this PR? _(If not, why?)_


### Provide a list of related PRs _(if any)_


### Command used to generate this PR:**_(Applicable only to SDK release
request PRs)_

### Checklists
- [ ] Added impacted package name to the issue description
- [ ] Does this PR needs any fixes in the SDK Generator?** _(If so,
create an Issue in the
[Autorest/typescript](https://github.com/Azure/autorest.typescript)
repository and link it here)_
- [ ] Added a changelog (if necessary)

---------

Co-authored-by: root <root@DESKTOP-6GBNLER>
…27200)

also add a `testPollingOptions` in recorder to help testing in playback
mode.
### Packages impacted by this PR

- @azure/monitor-opentelemetry
- @azure/monitor-opentelemetry-exporter
- @azure/monitor-query

### Issues associated with this PR

Updates to latest OTEL

### Describe the problem that is addressed by this PR

Updates to latest OTEL

### What are the possible designs available to address the problem? If
there are more than one possible design, why was the one in this PR
chosen?


### Are there test cases added in this PR? _(If not, why?)_


### Provide a list of related PRs _(if any)_


### Command used to generate this PR:**_(Applicable only to SDK release
request PRs)_

### Checklists
- [x] Added impacted package name to the issue description
- [ ] Does this PR needs any fixes in the SDK Generator?** _(If so,
create an Issue in the
[Autorest/typescript](https://github.com/Azure/autorest.typescript)
repository and link it here)_
- [ ] Added a changelog (if necessary)
Post release automated changes for azure-openai
### Packages impacted by this PR


### Issues associated with this PR


### Describe the problem that is addressed by this PR


### What are the possible designs available to address the problem? If
there are more than one possible design, why was the one in this PR
chosen?


### Are there test cases added in this PR? _(If not, why?)_


### Provide a list of related PRs _(if any)_


### Command used to generate this PR:**_(Applicable only to SDK release
request PRs)_

### Checklists
- [ ] Added impacted package name to the issue description
- [ ] Does this PR needs any fixes in the SDK Generator?** _(If so,
create an Issue in the
[Autorest/typescript](https://github.com/Azure/autorest.typescript)
repository and link it here)_
- [ ] Added a changelog (if necessary)
Post release automated changes for azure-arm-sql
## Issue
First reported at
Azure#25426
`EventHubBufferedProducerClient` leaks memory when there are no packets
to send to event-hubs.

### `EventHubBufferedProducerClient`
- EventHubBufferedProducerClient is used to publish events to Event Hub
- It does not publish events immediately. Instead, events are buffered
so they can be efficiently batched and published when the batch is full
or the `maxWaitTimeInMs` has elapsed with no new events enqueued.


## Stress Testing
The test sends about 5000 events and stops for a long duration,
revealing the memory blowing up.
<img
src="https://github.com/Azure/azure-sdk-for-js/assets/10452642/b34ef5e5-3fad-467b-80fe-503d2fd34d92"
width=500>

## Investigation
Studying the heap snapshots, and comparing them at various timestamps
during the test run hinted at the issue.
The problem is at the `BatchingPartitionChannel#_startPublishLoop` and
the `AwaitableQueue#shift` implementations.

### `BatchingPartitionChannel#_startPublishLoop`
- Starts the loop that creates batches and sends them to the Event Hub
- Runs forever or until the `abortSignal` is invoked

### `AwaitableQueue#shift`
- Returns a Promise that will resolve with the next item in the queue. 
- If there are no items in the queue, the pending Promise stays forever.

## Problem
`BatchingPartitionChannel#_startPublishLoop` relies on a while loop to
run forever.
- The root cause of the leak in the `#_startPublishLoop` is a race
between two promises(`AwaitableQueue#shift()` and `delay()`)
- `AwaitableQueue#shift()` never settles because there is no activity. 
- `Promise.race` resolves as soon as one of the promises is fulfilled.
- `Promise.race` though resolves, keeps a reference for the pending
promise from `AwaitableQueue#shift()`, references get accumulated
because of the while loop causing the leak.

## Solution
The fix is to abort the pending promise from `AwaitableQueue#shift()`
once the race has been won by the other `delay()` promise.

## What's in the PR?
### `@azure/core-util`
- Added a helper method `racePromisesAndAbortLosers`, an abstraction
that leverages `"Promise.race()"` and aborts the losers of the race as
soon as the first promise fulfills.
- Changelog

### `@azure/event-hubs`
- Updated `BatchingPartitionChannel#_startPublishLoop` to use
`racePromisesAndAbortLosers` instead of `Promise.race`.
- Updated `AwaitableQueue#shift()` to return a promise that is
cancellable so that the pending promise cancels once the first promise
from `Promise.race` resolves .

### Moved the stress testing to
Azure#27184

---------

Co-authored-by: Jeremy Meng <[email protected]>
Co-authored-by: Deyaaeldeen Almahallawi <[email protected]>
The minor version of test-recorder was bumped thus 3.0.1 is no longer
valid. This PR changes the version to ^3.0.0
***NO_CI***

so that LRO operations in playback mode don't wait.
deyaaeldeen and others added 22 commits October 26, 2023 13:55
The version was pinned due to test failure in issue Azure#25804. However, the
test now runs fine with latest versions, even though the optional
chaining syntax is still there. It's possible that changes around test infrastructure
somehow worked around the issue. This PR removes the version pinning.
Sync eng/common directory with azure-sdk-tools for PR
Azure/azure-sdk-tools#7181 See [eng/common
workflow](https://github.com/Azure/azure-sdk-tools/blob/main/eng/common/README.md#workflow)

---------

Co-authored-by: Wes Haggard <[email protected]>
Co-authored-by: Wes Haggard <[email protected]>
Co-authored-by: Ben Broderick Phillips <[email protected]>
### Packages impacted by this PR


### Issues associated with this PR


### Describe the problem that is addressed by this PR


### What are the possible designs available to address the problem? If
there are more than one possible design, why was the one in this PR
chosen?


### Are there test cases added in this PR? _(If not, why?)_


### Provide a list of related PRs _(if any)_


### Command used to generate this PR:**_(Applicable only to SDK release
request PRs)_

### Checklists
- [ ] Added impacted package name to the issue description
- [ ] Does this PR needs any fixes in the SDK Generator?** _(If so,
create an Issue in the
[Autorest/typescript](https://github.com/Azure/autorest.typescript)
repository and link it here)_
- [ ] Added a changelog (if necessary)

---------

Co-authored-by: Marc Ma <[email protected]>
Post release automated changes for azure-identity-broker
@azure/identity post release version update
This is an automatic PR generated weekly with changes from running the
command rush update --full
Azure#27597)

- with 18.x by default
- with 20.x to avoid dupe/have better coverage
***NO_CI***

- React to @types/node changes
- Fix eslint-plugin tests
Post release automated changes for azure-cosmos
### Packages impacted by this PR


### Issues associated with this PR


### Describe the problem that is addressed by this PR


### What are the possible designs available to address the problem? If
there are more than one possible design, why was the one in this PR
chosen?


### Are there test cases added in this PR? _(If not, why?)_


### Provide a list of related PRs _(if any)_


### Command used to generate this PR:**_(Applicable only to SDK release
request PRs)_

### Checklists
- [ ] Added impacted package name to the issue description
- [ ] Does this PR needs any fixes in the SDK Generator?** _(If so,
create an Issue in the
[Autorest/typescript](https://github.com/Azure/autorest.typescript)
repository and link it here)_
- [ ] Added a changelog (if necessary)
### Packages impacted by this PR


### Issues associated with this PR


### Describe the problem that is addressed by this PR


### What are the possible designs available to address the problem? If
there are more than one possible design, why was the one in this PR
chosen?


### Are there test cases added in this PR? _(If not, why?)_


### Provide a list of related PRs _(if any)_


### Command used to generate this PR:**_(Applicable only to SDK release
request PRs)_

### Checklists
- [ ] Added impacted package name to the issue description
- [ ] Does this PR needs any fixes in the SDK Generator?** _(If so,
create an Issue in the
[Autorest/typescript](https://github.com/Azure/autorest.typescript)
repository and link it here)_
- [ ] Added a changelog (if necessary)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.