Commit graph

12610 commits

Author SHA1 Message Date
renovate[bot]
cb6f9f3e00
chore(deps): update actions/upload-artifact action to v4.4.0 2024-08-30 19:47:10 +00:00
renovate[bot]
d750ba5f99
chore(deps): update github/codeql-action action to v3.26.6 2024-08-29 14:23:00 +00:00
ArchiBot
c84db87532
Automatic translations update 2024-08-27 02:15:43 +00:00
renovate[bot]
3da662ef61
chore(deps): update swashbuckle-aspnetcore monorepo to v6.7.3 2024-08-26 09:26:01 +00:00
Łukasz Domeradzki
2f42c75df7
Update Directory.Build.props 2024-08-26 11:25:11 +02:00
Łukasz Domeradzki
14388487fd
Fix build 2024-08-26 10:07:31 +02:00
Łukasz Domeradzki
a155748f88
Misc 2024-08-26 10:04:54 +02:00
renovate[bot]
c7fa69a25b chore(deps): update dependency steamkit2 to v3.0.0-beta.2 2024-08-26 08:00:56 +00:00
renovate[bot]
5194cb103a
chore(deps): update swashbuckle-aspnetcore monorepo to v6.7.2 2024-08-24 14:13:46 +00:00
renovate[bot]
77ec0d1c78
chore(deps): update github/codeql-action action to v3.26.5 2024-08-24 02:34:08 +00:00
renovate[bot]
d85c9a3c0a
chore(deps): update asf-ui digest to 1641151 2024-08-23 18:03:25 +00:00
renovate[bot]
97a8e6f5c2
chore(deps): update actions/attest-build-provenance action to v1.4.2 2024-08-22 23:37:30 +00:00
renovate[bot]
3d73b42c15
chore(deps): update asf-ui digest to 2b37add 2024-08-22 20:06:49 +00:00
renovate[bot]
4156dfcd4e
chore(deps): update dependency microsoft.identitymodel.jsonwebtokens to v8.0.2 2024-08-22 06:39:35 +00:00
renovate[bot]
9fb19bffc1
chore(deps): update github/codeql-action action to v3.26.4 2024-08-21 20:32:34 +00:00
ArchiBot
fe1cdce59d
Automatic translations update 2024-08-21 02:13:51 +00:00
ArchiBot
c07caf6be8
Automatic translations update 2024-08-20 02:13:43 +00:00
renovate[bot]
cab8c60fcb
chore(deps): update github/codeql-action action to v3.26.3 2024-08-19 19:59:22 +00:00
renovate[bot]
023c7da52b
chore(deps): update wiki digest to e7c71c7 2024-08-19 12:37:17 +00:00
Łukasz Domeradzki
6b2bcbee6e
Drop VS public signing workaround
They had enough of time to fix their stupidity
2024-08-19 14:36:19 +02:00
ArchiBot
ebac577ede
Automatic translations update 2024-08-19 02:15:10 +00:00
renovate[bot]
0846291779
chore(deps): update swashbuckle-aspnetcore monorepo to v6.7.1 2024-08-18 07:55:58 +00:00
Łukasz Domeradzki
fab9d95096
Allow nullable T for concurrent list
Even if we don't use it, no reason to not support it, since it is in underlying collection
2024-08-18 03:21:03 +02:00
Łukasz Domeradzki
2dc853ebfc
Misc 2024-08-18 03:17:30 +02:00
Łukasz Domeradzki
5867a351a8
Misc 2024-08-18 03:14:11 +02:00
Łukasz Domeradzki
5605e9a666
Misc 2024-08-18 01:59:25 +02:00
Łukasz Domeradzki
337b720d31
Misc deduplication 2024-08-18 01:53:13 +02:00
Łukasz Domeradzki
06185d5f7d
Misc 2024-08-17 22:19:17 +02:00
Łukasz Domeradzki
90cfdd140b
Bump 2024-08-17 21:45:40 +02:00
Łukasz Domeradzki
5a41d559a3
Misc
No point in making this available for all IEnumerables, only ICollections are affected
2024-08-16 03:35:09 +02:00
Łukasz Domeradzki
b6805a94a3
Add workaround for LINQ race condition with concurrent collections
This is some next-level race condition, so for those interested:
- Concurrent collections are thread-safe in a way that each operation is atomic
- Naturally if you call two atomic operations in a row, the result is no longer atomic, since there could be some changes between the first and the last
- Certain LINQ operations such as OrderBy(), Reverse(), ToArray(), among more, use internal buffer for operation with certain optimization that checks if input is ICollection, if yes, it calls Count and CopyTo(), for OrderBy in this example
- In result, such LINQ call is not guaranteed to be thread-safe, since it assumes those two calls to be atomic, while they're not in reality.

This issue is quite hard to spot in real applications, since it's not that easy to trigger it (you need to call the operation on ICollection and then have another thread modifying it while enumerating). This is probably why we've never had any real problem until I've discovered this madness with @Aareksio in entirely different project.

As a workaround, we'll explicitly convert some ICollection inputs to IEnumerable, in particular around OrderBy(), so the optimization is skipped and the result is not corrupted.

I've added unit tests which ensure this workaround works properly, and you can easily reproduce the problem by removing AsLinqThreadSafeEnumerable() in them.

See https://github.com/dotnet/runtime/discussions/50687 for more insight

I have no clue who thought that ignoring this issue is a good idea, at the very least concurrent collections should have opt-out mechanism from those optimizations, there is no reason for them to not do that.
2024-08-16 03:25:58 +02:00
renovate[bot]
6a678cd5a9
chore(deps): update github/codeql-action action to v3.26.2 2024-08-14 16:30:56 +00:00
renovate[bot]
ecaf61252a chore(deps): update asf-ui digest to 6900304 2024-08-14 08:46:01 +00:00
ArchiBot
85c4e4ac37
Automatic translations update 2024-08-14 02:14:19 +00:00
renovate[bot]
16394182b2
chore(deps): update github/codeql-action action to v3.26.1 2024-08-13 23:09:58 +00:00
renovate[bot]
a0cc53cbb7
chore(deps): update docker/build-push-action action to v6.7.0 2024-08-13 19:17:41 +00:00
renovate[bot]
f331ee2c24
chore(deps): update dependency mstest to v3.5.2 2024-08-13 17:39:50 +00:00
renovate[bot]
cb0767f28e
chore(deps): update dependency microsoft.codeanalysis.resxsourcegenerator to v3.11.0-beta1.24324.1 2024-08-13 13:40:40 +00:00
renovate[bot]
91aaf3be19
chore(deps): update dependency nlog.web.aspnetcore to v5.3.12 2024-08-13 04:29:59 +00:00
ArchiBot
9540e564fc
Automatic translations update 2024-08-13 02:15:24 +00:00
renovate[bot]
2100d6287c
chore(deps): update asf-ui digest to 184c664 2024-08-12 01:06:04 +00:00
ArchiBot
8ad8183d4f
Automatic translations update 2024-08-11 02:16:59 +00:00
Łukasz Domeradzki
90f2d93768
Optimize mobile authenticator, add unit tests 2024-08-11 02:21:00 +02:00
renovate[bot]
bae8dc330c
chore(deps): update asf-ui digest to 1136a49 2024-08-10 04:23:27 +00:00
ArchiBot
599ca4d2c9
Automatic translations update 2024-08-10 02:13:43 +00:00
Łukasz Domeradzki
ff7a1e7c0e
Misc optimization 2024-08-09 23:03:56 +02:00
renovate[bot]
216cd51c4a
chore(deps): update actions/attest-build-provenance action to v1.4.1 2024-08-09 17:47:24 +00:00
Łukasz Domeradzki
568e9935ac
Bump 2024-08-08 14:19:46 +02:00
renovate[bot]
28e9247c9a
chore(deps): update docker/build-push-action action to v6.6.1 2024-08-07 21:16:33 +00:00
renovate[bot]
df3f16d424
chore(deps): update jetbrains/qodana-action action to v2024.1.9 2024-08-07 15:40:18 +00:00