Skip to content

Bump Microsoft.AspNetCore.Http from 2.1.22 to 2.2.2 - #2

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/Microsoft.AspNetCore.Http-2.2.2
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/Microsoft.AspNetCore.Http-2.2.2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Mar 4, 2022 •

Copy link
Copy Markdown

Bumps Microsoft.AspNetCore.Http from 2.1.22 to 2.2.2.

Release notes

Sourced from Microsoft.AspNetCore.Http's releases.

v2.2.2

No release notes provided.

v2.2.1

Repos

v2.2.0

ASP.NET Core release notes

We have disabled view recompilation when .cshtml change by default (except for the Development environment). A new flag called AllowRecompilingViewsOnFileChange has been introduced in RazorViewEngineOptions, which can be used to configure whether the view engine will watch for file changes. The settings is set to false by default for all environments but Development. If you are using Visual Studio to debug, then it will launch the application in the Development environment by default. You can find more details about the change by looking at this PR: aspnet/Mvc#8369

In case you would like to keep the view recompilation enabled for your project, you can choose so by configure Razor options in Startup.ConfigureService method using the following code block:

Repos

2.2.0-preview3

Known issues: aspnet/Announcements#323

2.2.0-preview2

ASP.NET Core 2.2.0-preview2

For more details, see the blog post here: https://blogs.msdn.microsoft.com/webdev/2018/09/12/asp-net-core-2-2-0-preview2-now-available.

To see all issues closed in the 2.2.0 Preview 2 milestone, see the results of this query.

.NET Core 2.1.25

... (truncated)

Commits
  • 522705f Merge pull request #6994 from aspnet/halter73/1531-part2
  • 2853b45 Add RequestAbortedTokenIsUsableAfterCancellation test
  • 5d554ae Revert "Wait to dispose RequestAborted CTS (#4447)"
  • f4c5ac7 Move Kestrel.Core.Tests to their own test group (#6927)
  • 8c06f04 Call StopAsync before disposing (#6189) (#6866)
  • a2151cb Do not include prodcon build ID in version metadata
  • 829cd72 Fix signing for 2.2 site extensions (#6777)
  • c992f0d Fix NU1604 error during prodcon builds (#6806)
  • 4c1a375 Merge branch 'release/2.1' into release/2.2
  • ad31f94 Fix failing Razor file comparison tests (#6757)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [Microsoft.AspNetCore.Http](https://github.com/aspnet/AspNetCore) from 2.1.22 to 2.2.2.
- [Release notes](https://github.com/aspnet/AspNetCore/releases)
- [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
- [Commits](dotnet/aspnetcore@v2.1.22...v2.2.2)

---
updated-dependencies:
- dependency-name: Microsoft.AspNetCore.Http
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file label Mar 4, 2022
@dependabot @github

dependabot Bot commented on behalf of github Mar 7, 2022

Copy link
Copy Markdown
Author

Looks like Microsoft.AspNetCore.Http is no longer a dependency, so this is no longer needed.

@dependabot dependabot Bot closed this Mar 7, 2022
@dependabot
dependabot Bot deleted the dependabot/nuget/Microsoft.AspNetCore.Http-2.2.2 branch March 7, 2022 06:16
marcschier added a commit that referenced this pull request Jun 15, 2026
… + rename AddOpcUaBindingsPcap → AddPcapBinding

Five review comments on Docs/migrate/2.0.x/sessions-subscriptions.md
addressed:

1. (line 344) 'These were added in 2.0, no need to discuss migration' —
   dropped the 'Two additive surface additions for the new WSS
   reverse-connect path' block and the 'Channel-customization hooks'
   block. They documented additive 2.0-new surface, not migration
   guidance from 1.5.378.

2. (line 347) 'Just document the removal of IMessageSocket abstraction,
   drop the Transports: WSS and HTTPS-JSON' — renamed the section
   heading from 'Transports: WSS and HTTPS-JSON, IMessageSocket
   removed' to 'IMessageSocket abstraction removed' and dropped the
   intro paragraph about the new WSS / HTTPS-JSON transport profiles
   (also additive, covered by Docs/Profiles.md / WhatsNewIn2.0.md).
   Kept the IMessageSocket removal table + custom-IMessageSocket
   migration note as the actual migration content.

3. (line 349) 'Remove this section' — same intent, addressed by #2.

4. (line 434) 'Remove this section since Pcap package is new in 2.0' —
   dropped the 'Opc.Ua.Bindings.Pcap consumers' block from the
   Transport-binding-registry section + the 'PcapBindings.Install'
   line from the DI consumers code snippet. Pcap is new in 2.0 so it
   has no migration story from 1.5.378.

5. (line 446) 'Rename AddOpcUaBindingsPcap() to AddPcapBinding(). In
   code, in this PR, no obsoletion required since it is new' — code
   rename: AddOpcUaBindingsPcap → AddPcapBinding. For symmetry the
   sister methods follow the same convention:
   - AddOpcUaBindingsPcap            → AddPcapBinding
   - AddOpcUaBindingsPcapFormatters  → AddPcapFormatters
   - AddOpcUaBindingsPcapReplay      → AddPcapReplay
   All callers updated: PcapServiceCollectionExtensions.cs,
   PcapBindings.cs (xmldoc), PcapTransportChannelBinding.cs (xmldoc),
   ChannelCaptureRegistry.cs (xmldoc), IKeyEscrowProvider.cs (xmldoc),
   NugetREADME.md, Applications/McpServer/Program.cs,
   Tests/Opc.Ua.Bindings.Pcap.Tests/.../*Tests.cs, Docs/PacketCapture.md.
   No [Obsolete] shim added per review instruction (the package is new
   in 2.0 and has no prior consumers to break).

Verification:
- 'dotnet build Tests/Opc.Ua.Bindings.Pcap.Tests': clean.
- 20/20 Pcap DI extension tests pass.
marcschier added a commit that referenced this pull request Jul 2, 2026
…aling, Warm/Hot client standby

Plan items #3 and #4 from plans/28-distributed-ha-remaining.md (items #1/#2 are now issues OPCFoundation#3938/OPCFoundation#3939).

#3: RedundantClientSessionFailoverIntegrationTests (Opc.Ua.Sessions.Tests) drives two RedundantClientSession replicas with a controllable leader election against a live ReferenceServer; asserts a follower blocks/throws BadInvalidState, then after a forced handoff the same facade reference keeps serving browse/read over the swapped-in session. Passes net10 + net48. Added a Redundancy.Client project reference.

#4a: RedundantServer DNS peer discovery (HA_PEER_DISCOVERY=dns + HA_SERVICE_NAME, self-exclusion + startup retry) + docker-compose.scale.yml so 'docker compose up --scale server=N' self-configures gossip peers. Active/active eventual only; Raft dynamic scaling stays on the Kubernetes StatefulSet path.

#4b: RedundantClient --standby <Cold|Warm|Hot> selects the replica-set standby mode; --suite with --replicas>1 runs the browse/read/subscribe workload through the promoted leader facade. RedundantClient AOT-publishes clean.

Docs: RedundantClient/RedundantServer READMEs updated; plans/28 moves #3/#4 to Delivered.
marcschier added a commit that referenced this pull request Jul 31, 2026
Reconcile the PumpX-2000 datasheet work with the address-space
compliance changes from OPCFoundation#4117, which reshaped the same sample.

Conflict resolutions:

- WithIdentification: keep the upstream per-pump signature
  (builder, pump, pumpNumber) and NodeId-based lookup, and apply the
  full 21-field datasheet nameplate through it. Unit-specific fields
  (serial, asset id, component name, location, fabrication number) are
  now derived from the pump number, so every instance materialised by
  --pumps N gets a consistent nameplate instead of only the first two.
- Program.cs: take upstream. Identification is configured centrally in
  WithIdentification for every pump, so the per-pump nameplate block in
  the ConfigureDevicesFor delegate is superseded; the delegate keeps
  upstream's loop that adds the Diagnostics functional group.
- PumpSimulationState.Publish: keep upstream's status code and source
  timestamp plumbing and publish the datasheet curve values through it.
- Supervision booleans: keep upstream's WireBoolean helper (TrueState /
  FalseState text and history) and drop the alarm's MonitorVariable on
  the boolean, because the alarm now sources BearingTemperature, which
  is what its Kelvin trip points describe.
- Node-surface baseline: union of both identification lists.
- docs/SourceGeneratedNodeManagers.md was consolidated upstream into
  docs/NodeManagers.md; the datasheet-related snippet fixes were ported
  there and the old file deleted.

Documentation and tests follow the upstream rename of the pump
BrowseNames to Pump_1 / Pump_2 (DisplayName "Pump #1" / "Pump #2").

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: fe608993-f3c9-4779-a6b9-9a9eabfc24ba
marcschier pushed a commit that referenced this pull request Aug 29, 2026
…r nodes (Objects folder placement) (OPCFoundation#4331)

# Description

A node created inside the fluent `Configure` hook (source-generated
`[NodeManager]` partial, or the hosting `AddNodeManager(uri, build)`
route) had no way to appear below the Objects folder — or below any node
owned by another node manager.
`AsyncCustomNodeManager.AddReverseReferencesAsync` mirrors inverse
references into the `externalReferences` dictionary **before** the
`Configure` partials run, and the fluent surface never sees the
dictionary, so a configure-created node with an inverse `Organizes`
reference to `ObjectsFolder` existed and simulated but never showed up
under Objects.

This implements the three coordinated pieces proposed in OPCFoundation#4329, plus the
companion namespace gap:

**1. Idempotent mirroring pass** (independently worthwhile hardening)
- `AddExternalReference` in `AsyncCustomNodeManager` and
`CustomNodeManager2` now has if-missing semantics (linear scan of the
per-source list).
- `TypeTable.AddEncoding` no longer appends a duplicate encoding id;
re-registering the same encoding is a succeeding no-op.
(`AddRootNotifierAsync` and the node-side `AddReferenceIfMissing` branch
were already idempotent.)

**2. Re-run the pass after `Configure`**
- New protected
`FluentNodeManagerBase.CompleteConfigureAsync(externalReferences, ct)`
wraps `AddReverseReferencesAsync` so hand-written managers using
`CreateFluentBuilder` benefit too.
- The generator-emitted `CreateAddressSpaceAsync` and the hosting
`FluentNodeManager` invoke it once between the `Configure` callbacks and
`Seal()`. Timing is safe: the master distributes `externalReferences`
only after every manager's `CreateAddressSpaceAsync` returns. Side
benefit: inverse `HasNotifier` references on configure-created event
sources get root-notifier registration for free.
- The hosting `FluentNodeManager`'s hand-rolled `externalReferences`
workaround for its root folder is deleted — the root's inverse
`Organizes` reference now flows through the shared pass (mirrored
exactly once, covered by a test).

**3. Discoverable fluent sugar**
- `OrganizedBy(parentId)` / `UnderObjectsFolder()` on `INodeBuilder`
write the inverse `Organizes` reference; with piece 2, placement is just
"write the inverse reference".
- A parentless `CreateInstance<TState>` on `INodeManagerBuilder` takes a
constructor-style factory (`p => new BoilerState(p)`, keeping the
surface reflection-free and AOT-safe), materializes the subtree from the
type model via `NodeState.Create`, rebases all NodeIds through the
manager's `INodeIdFactory`
(`AssignInstanceNodeId`/`AssignInstanceChildNodeIds` — the same pair the
generated factories use, so declaration-id children cannot collide with
the type model), and registers via `AddPredefinedNodeSynchronously`. The
Boiler #2 shape becomes fully fluent:

```csharp
builder.CreateInstance(
        new QualifiedName("Boiler #2", NamespaceIndexes[1]),
        p => new BoilerState(p))
    .Configure(n => n.UnderObjectsFolder());
```

**Companion gap, same theme:** `[NodeManager]` grows
`AdditionalNamespaceUris`, flowing through attribute discovery → binding
→ generator so the generated constructor reports a second (instance)
namespace at construction and the generated factory advertises it in
`NamespacesUris` — today `SetNamespaces` after construction is not
enough because `MasterNodeManager` builds its namespace routing from
what the manager reported when it was built.

**Scope boundary** (as discussed in the issue): startup-time
configuration only; for nodes created after startup the correct
primitive remains `IMasterNodeManager.AddReferencesAsync`.

**Reviewer notes**
- The generated-code change was validated against the real pipeline: a
forced fresh compile of `Opc.Ua.Server.Tests` (whose CoverageNodeSet
managers are `[NodeManager]`-generated) emits `await
CompleteConfigureAsync(externalReferences, cancellationToken)` between
`Configure` and `Seal()` and compiles against the real base class.
- The distribution consumer (`AddReferencesAsync`) already used
`AddReferenceIfMissing`, so the whole chain is defense-in-depth
idempotent.
- 15 new tests: double-run idempotence, second-pass pickup of
late-registered nodes, the new reference sugar, root-instance creation
incl. child-id rebasing and reference remapping, hosting end-to-end
Objects-folder placement, emitted-sequence and `AdditionalNamespaceUris`
generator tests, and a full Roslyn-pipeline attribute test. Docs updated
in `docs/NodeManagers.md` (new "Creating nodes under other managers'
nodes" section, attribute docs, fluent-surface sections).
- Verified locally: all touched projects build with 0 warnings; full
`Opc.Ua.Server.Tests` (4,725 passed / 0 failed / 5 skipped, net9.0),
`TypeTableTests` (113), `Opc.Ua.SourceGeneration.Core.Tests` (41),
`Opc.Ua.SourceGeneration.Tests` (132), and the Quickstarts.Servers
sample all pass.

## Related Issues

- Fixes OPCFoundation#4329
- Motivating case: OPCFoundation/UA-.NETStandard-Samples#756 /
OPCFoundation/UA-.NETStandard-Samples#795 (Workshop/Boiler migration)

## Checklist

- [x] I have signed the
[CLA](https://opcfoundation.org/license/cla/ContributorLicenseAgreementv1.0.pdf)
and read the
[CONTRIBUTING](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/CONTRIBUTING.md)
doc.
- [x] I have added tests that prove my fix is effective or that my
feature works and increased code coverage.
- [x] I have added all necessary documentation.
- [x] I have verified that my changes do not introduce (new) build or
analyzer warnings.
- [ ] I ran **all** tests locally using the **UA.slnx** solution against
at least .net **framework** and .net **10**, and all passed.
- [ ] I fixed **all** failing and flaky tests in the CI pipelines and
**all** CodeQL warnings.
- [ ] I have addressed **all** PR feedback received.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
marcschier added a commit that referenced this pull request Sep 2, 2026
…oundation#4386)

Two related robustness fixes on the reverse-connect / UA-SC handshake
path, both surfaced by the Sessions suite.

## 1. Certificate handle leak in the asymmetric header parse

`UaSCBinaryChannel.ReadAsymmetricMessageHeader` parses the sender
certificate chain (`Utils.ParseCertificateChainBlob`, allocating fresh
`Certificate` handles) and then runs several validations that can throw
— invalid/missing sender thumbprint, no matching receiver certificate,
receiver thumbprint mismatch, missing receiver thumbprint. The chain is
returned through an `out` parameter, so a throw never reaches the
caller's `using (senderCertificateChain)` in
`ReadAsymmetricMessageAsync`, and the freshly parsed chain is abandoned.
For a self-signed leaf that is exactly the intermittent `created ==
disposed + 1` seen on the Release leak gate under coverage
instrumentation. This is the third sibling of the two
concurrent-reconnect ownership leaks closed in OPCFoundation#4356.

**Fix:** wrap the post-allocation region in a `try/catch` that disposes
the chain before rethrowing (validation logic unchanged).

**Test:**
`ReadAsymmetricMessageHeaderDisposesSenderChainWhenReceiverThumbprintMismatches`
crafts a header with a valid sender certificate and a mismatched
receiver thumbprint; without the fix it reproduces `created=3,
disposed=2` and trips the assembly leak gate, with the fix it passes.

## 2. Stale reverse-connection retry

A reverse connection the `ReverseConnectManager` delivers can already
have been closed by the server before the secure-channel handshake runs:
a server rotates and times out the outbound connections it offers, so
the one matched here — especially after an `updateBeforeConnect`
discovery round consumed an earlier one — may be stale. That surfaced as
an intermittent `BadConnectionClosed` ("Remote side closed the
connection") failing the whole connect (e.g.
`ReverseConnect2Async(true,true,…)`).

**Fix:** wrap reverse-connect session creation in
`DefaultSessionFactory` in a bounded retry (3 attempts) that requests a
freshly delivered connection when an attempt fails with a
connection-drop status (`BadConnectionClosed` / `BadNotConnected` /
`BadSecureChannelClosed`). Non-transient failures and cancellation still
surface immediately; the bound prevents an unbounded loop against a
genuinely unreachable server.

## 3. Test-host crash: NULL channel map in the inactivity timer

`TcpTransportListener.DetectInactiveChannels` (a fire-and-forget
inactivity-timer callback) iterated `m_channels` without holding
`m_lock`, while `CloseAsync` disposes the timer and nulls `m_channels`
under the lock. Disposing an `ITimer` does not join an
already-dispatched callback, so a late callback dereferenced the
now-null map and threw an unhandled `NullReferenceException` on a
thread-pool thread, crashing the process. This intermittently aborted
the `test-macOS-latest-Client` host.

**Fix:** snapshot `m_channels` and return early when null (mirroring the
existing guarded read on the accept path). Deterministic regression test
invokes the callback on a listener whose channel map is null (its state
before `OpenAsync` / after `CloseAsync`) and asserts it does not throw.

## Verification

- `Opc.Ua.Core.Tests` Stack.Transport/Client/Server: 2178 passed, leak
gate green.
- Coverage-instrumented `Opc.Ua.Sessions.Tests` (the CI leg): 775
passed, 0 failed, leak gate green.
- Reverse-connect suite (`ReverseConnect*`): 52 passed with the retry.
- `Opc.Ua.Core` and `Opc.Ua.Client` build warning-free (net10.0, net48,
netstandard2.1, net472).

Note: the reverse-connect failure is a rare timing flake (0
reproductions in 88 local attempts), so fix #2 addresses the root cause
identified from the ADO log and is validated by construction plus
regression rather than by a captured local repro.

## Related

- Follows OPCFoundation#4356 (concurrent channel reconnect certificate leaks).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Marc <marcschier@hotmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants