Comments (3)
Thanks for reporting @Tom4Real . Do you have a repro? Any theories as to what is happening? Anything non-default about your Postgres setup (eg pgbouncer)?
Can you show a snippet of your code?
from distributedlock.
@Tom4Real any update here?
from distributedlock.
[Test]
public async Task Repro()
{
var key = new PostgresAdvisoryLockKey("MyLockName", allowHashing: true);
var conn = TestingPostgresDb.DefaultConnectionString;
var lock1 = new PostgresDistributedLock(key, conn);
var lock2 = new PostgresDistributedLock(key, conn);
var lock3 = new PostgresDistributedLock(key, conn);
var counter = 0;
await Task.WhenAll(new[] { lock1, lock2, lock3 }.Select(l => Task.Run(async () =>
{
await using (await l.AcquireAsync())
{
var c = Interlocked.Increment(ref counter);
if (c != 1) { throw new Exception("concurrent acquisition!"); }
await Task.Delay(1000);
Interlocked.Decrement(ref counter);
}
})));
}
Attempted to reproduce with the above code. It does not repro for me. @Tom4Real please let me know if you're still observing this and can share additional detail. For now I'm closing this as not reproducible.
from distributedlock.
Related Issues (20)
- Too many UnobservedTaskException HOT 2
- IOException: directory already exists in Ubuntu
- Elaborate on ZooKeeper setup docs HOT 1
- Upgrade to NUnit 4 and leverage new features like Assert.ThatAsync and Assert.Multiple
- Use NUnit.Analyzers to prepare for migration to NUnit 4
- Add additional TFM so the dependency on System.Threading.AccessControl can be removed HOT 2
- Azure Semaphore implementation HOT 1
- Local development and CI using test containers HOT 5
- Dependency on Microsoft.Data.SqlClient 5.2.0 may be unnecessary HOT 5
- Postgres: Add support for transaction-scoped advisory locks with external DB connections HOT 9
- EventWaitHandle support for local namespace HOT 2
- Rare race condition with keepalive after upgrading to Npgsql 8.0.3
- Core Next Minor - normalize locking in DatabaseConnection.CreateCommand()
- Upgrade to Npgsql 8.0.3
- Take advantage of """ strings in various files
- RedisScript<T> whitespace regex doesn't need to consider single whitespace chars
- Single-node in-memory implementation HOT 2
- Sqlite implementation HOT 1
- Postgres: allow ShouldPrepareCommands to be false to work with npgsql driver Multiplexing HOT 1
- DistributedLock.Azure - Locks not being released as of 7/1/2024 HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from distributedlock.