Comments (3)
TestCase:
The test case has a thread as a data feed and waits until at least one invocation occurs in the subscription. After this it will dispose the subscription (the input thread will keep running until canceled).
Expected behavior: The test to run to completion.
Actual behavior: A null reference exception due to the disposed currentBatch state and the non disposed observable.
[TestMethod, TestCategory("Gated")]
public async Task DisposeTest1()
{
var cancelTokenSource = new CancellationTokenSource();
var inputSubject = new Subject<int>();
var lastSeenSubscription = 0;
var observableInput = inputSubject.AsObservable();
var inputTask = new Task(() =>
{
var n = 0;
while (!cancelTokenSource.Token.IsCancellationRequested)
{
inputSubject.OnNext(++n);
Thread.Sleep(10);
}
inputSubject.OnCompleted();
});
var semaphore = new SemaphoreSlim(0, 1);
var subscription = observableInput.ToAtemporalStreamable(TimelinePolicy.Sequence(1)).Count().ToStreamEventObservable().Where(c => c.IsData).Subscribe(c =>
{
Interlocked.Exchange(ref lastSeenSubscription, (int)c.Payload);
if (semaphore.CurrentCount == 0) semaphore.Release();
});
// Start the input feed.
inputTask.Start();
// Wait until we have at least one output data event.
await semaphore.WaitAsync();
// Dispose the subscription.
subscription.Dispose();
// Keep the input feed going, before cancel. This should behave properly if the subscription is disposed of properly.
await Task.Delay(200);
cancelTokenSource.Cancel();
await inputTask;
// Make sure we really got an output data event.
Assert.IsTrue(lastSeenSubscription > 0);
}
from trill.
Good call on all accounts, @jmajoor. Checking in a fix shortly.
from trill.
Issue should be fixed now! Thank you for your help!
from trill.
Related Issues (20)
- MissingMethodException when using QueryContainer() HOT 1
- Caching in non-library mode throws exception and question regarding performance tests
- Install trill on a Linux server?
- Output when SessionTimeoutWindow() ends HOT 11
- NullReferenceException in Columnar Mode HOT 4
- [QUESTION] Output count = 0 when the last event leaves snapshot window HOT 2
- Controlled flush on partitioned streams HOT 1
- Output on aggregations and partition reset
- ReflectionSchemaBuilder ignores knownTypes of the nested type
- Parsing query language to derive Trill operation HOT 1
- NullReferenceException when using checkpointing HOT 2
- Random splitter in a multicore setting
- Trill with Azure Storage Blob and Table HOT 1
- Ingress from Azure Event Hubs - how?
- NullReferenceException when running under net6.0 HOT 1
- Is Trill alive? HOT 10
- Enable .NET 7.0 support HOT 6
- Trillsx HOT 1
- Calling Connect() on a ConnectableStreamable without subscribers throw System.NullReferenceException
- This repo is missing important files HOT 1
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 trill.