Closed mayur-rao closed 11 months ago
Fix in the 1.5.0-RC2 version
Hi @LGouellec Appreciate the quick fix. I upgraded the package to 1.5.0-RC2 and tested in an app where I have multiple stream toplogies as part of processing. While testing I am running into an aggregate exception related to threads. Can you please take a look?
Exception :
info: Streamiz.Kafka.Net.Processors.GlobalStreamThread[0]
global-stream-thread processor-1bc32f19-59fa-4c9d-922f-ddd6d20b2121-GlobalStreamThread Shutting down
Unhandled exception. System.AggregateException: One or more errors occurred. (One or more errors occurred. (Thread has not been started.))
---> System.AggregateException: One or more errors occurred. (Thread has not been started.)
---> System.Threading.ThreadStateException: Thread has not been started.
at System.Threading.Thread.Join(Int32 millisecondsTimeout)
at System.Threading.Thread.Join()
at Streamiz.Kafka.Net.Processors.GlobalStreamThread.Dispose(Boolean waitForThread)
at Streamiz.Kafka.Net.KafkaStream.Close()
at Streamiz.Kafka.Net.KafkaStream.
@mayur-rao ,
Do you have the full log of your application please ?
It happens when you shutdown the app ?
It happens when I start the app which has multiple topologies as summarized in the logs. During the execution of the 1st topology, I think it is trying to close/stop a thread and running into the above exception. I was not facing this with nuget version 1.4.2
Attaching full logs as a txt. streams-issue-comment.txt
@mayur-rao ,
Can you share the GlobalTable topology please ?
Hi @LGouellec
I did a restart of my application and after that no longer running into the thread exception. So please close this issue. I will report back if see an issue again.
Again, I thank you for your quick response and time spent.
Description
When I try to reprocess the messages from earliest offset of a topic that is populating an InMemoryWindowStore, while restoring state and trying to skip record for expired segment, the library crashes on a NullReferenceException. In the class InMemoryWindowStore.cs method Put() line 351, the
context.Timestamp
variable is NULL. Code :if (windowStartTimestamp <= observedStreamTime - retention.TotalMilliseconds) { expiredRecordSensor.Record(1.0, context.Timestamp); logger.LogWarning("Skipping record for expired segment"); }
How to reproduce
Checklist
Please provide the following information: