0

We are using ServiceStack SSE, as RedisSentEvents, ServiceStack version is 5.8 Sometimes the SSE client receives an Invalid JSON on the other side, and sometimes we get an exception.

Most of the times we receive an Invalid JSON and right after that 2-3 exceptions. the exception:

    2021-11-12 00:58:18,567 [83] ERROR SseClient - sse client exception
System.NullReferenceException: Object reference not set to an instance of an object.
   at ServiceStack.ServerEventsClient.ProcessEventMessage(ServerEventMessage e) in C:\BuildAgent\work\3481147c480f4a2f\src\ServiceStack.Client\ServerEventsClient.cs:line 689
   at ServiceStack.ServerEventsClient.<>c__DisplayClass108_0.<ProcessResponse>b__0(Task`1 t) in C:\BuildAgent\work\3481147c480f4a2f\src\ServiceStack.Client\ServerEventsClient.cs:line 557

by looking at the source code the exception seems to be with the data received, https://github.com/ServiceStack/ServiceStack/blob/619dfa61be4121626ee65bcc2d3e3a46a546c171/src/ServiceStack.Client/ServerEventsClient.cs#L689

The Invalid JSON varies, here are 2 Examples:

first is an object within a list withing an object about 120 lines, 4k characters

"SomeCollection":
[{"SomeGuid1":"905675f9a8fc4447bb71bea5be5231b6",
"EntityType":"Site",
"SomeGuid2":"00000000000000000000000000000000",
"SomeGuid3":"00000000000000000000000000000000",
"Name":"Ack",
"SomeGuid4":"ea47318399fd4093a58ab69a8497c088",
"CreatedDate":"2021-11-11T16:58:12.5288726Z",
"UpdatedDa:"00000000000000000000000000000000",
"SomeGuid3":"00000000000000000000000000000000",
"SomeString":"",
"SomeGuid3":"00000000000000000000000000000000"}]

Notice "UpdatedDa:"00000000000000000000000000000000", , it should be "UpdatedDate":"<some-valid-date>" ,it did not write the property name properly and missed the apostrophes

Second is again an object within a list within an object in about 1.5K characters

{
    "__type":"<sometype1>",
    "Objects":[
        {"__type":"<sometype2>",
        "State":"Good",
        "Points":[
            {"Point":1,"Speed":0.59},
            {"Point":2,"Speed":0.52},
            {"Point":3,"Speed":0.53},
            {"Point":4,"Speed":0.56},
            {000000000000000000000"}
        ],
    "OperationType":"Update"
}

Notice {000000000000000000000"}, as i dont know that was the original list I cant say what should be instead but it should be at least another one like one above, also it misses another ] and some properties after the Points collection.

the serialization itself is done by the RedisSentEvents, its not throwing any exceptions.

Have anyone encountered such a problem? scratching my head here.. What could I check? where should I look?

Shubaka
  • 13
  • 3
  • Looks like some data corruption issue, might be [improper usage of Redis clients](https://github.com/ServiceStack/ServiceStack.Redis#debugging-data-corruption-issues) or might be a race condition, I'd first try upgrading the latest version to check it hasn't been resolved yet. If needed, can use [Trial License Key](https://servicestack.net/trial) to test against the latest version. – mythz Nov 17 '21 at 14:58
  • 1
    @mythz after some testing we can't reproduce the problem on a newer version. thanks. – Shubaka Dec 07 '21 at 12:19

0 Answers0