Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
Sander Rijken
@srijken
not the ID either
Blake Niemyjski
@niemyjski
id, date and reference id stuff was different when I checked on the raw json serverside
Sander Rijken
@srijken
what ID? event ID or ModuleID?
Blake Niemyjski
@niemyjski
event id
Sander Rijken
@srijken
the testcase itself isn’t stable either.. Right now I have the same consistent hashcode, and it fails because it gets 8 where it expects 9
that bit is a timing problem
when it gets 2 where it expects 1, it’s a hashcode problem
Eric J. Smith
@ejsmith
I see my name was mentioned and there are like 100 messages?
Blake Niemyjski
@niemyjski
yeah
so there are two different issues
@ejsmith yeah there were questions for you me and sander and working through them now
@ejsmith do you want me to merge in the EventStats into Foundatio Elasticsearch repository read only base?
Eric J. Smith
@ejsmith
yeah, that would be nice.
Blake Niemyjski
@niemyjski
or a seperate class?
Eric J. Smith
@ejsmith
I think it would be good to have it as methods on the repo
Blake Niemyjski
@niemyjski
ok
O
I’ll merge it in with models cause I need the terms stuff on our repo
Sander Rijken
@srijken
ok, my search in .Modules was a stupid move. Conclusion now is that somehow the stacktrace is different
Blake Niemyjski
@niemyjski
how
it’s the same stack trace :\
that’s what I don’t get
I get that it could be different in mvc due to maybe a race condition in handlers but crazy
@ejsmith there’s really no good way to do this in the base class:
.WithDateRange(utcStart, utcEnd, EventIndex.Fields.PersistentEvent.Date)
.WithIndices(utcStart, utcEnd, $"'{_eventIndex.VersionedName}-'yyyyMM");
Sander Rijken
@srijken
hmf
getting quantum physics feelings right now
I’m inspecting where it’s probably failing
and it no longer fails
got it
Checking event:  with hash: 754157865 1407249123 GetException: 766225261 - ILOffset 8 - NativeOffset87
Checking event:  with hash: 752981631 1924808933 GetException: 217121131 - ILOffset 0 - NativeOffset87
Checking event:  with hash: 754157865 1407249123 GetException: 766225261 - ILOffset 8 - NativeOffset87
Checking event:  with hash: 754157865 1407249123 GetException: 766225261 - ILOffset 8 - NativeOffset87
Checking event:  with hash: 754157865 1407249123 GetException: 766225261 - ILOffset 8 - NativeOffset87
var error = context.Event.Data["@error"] as Exceptionless.Models.Data.Error;
            context.Log.FormattedInfo(typeof(DuplicateCheckerPlugin), String.Concat("Checking event: ", context.Event.Message, " with hash: ", hashCode + " " + error.StackTrace.GetCollectionHashCode() +
                 " " + string.Join(", ", error.StackTrace.Select(x => x.Name + ": " + x.GetHashCode() + " - ILOffset " + x.Data["ILOffset"] + " - NativeOffset" + x.Data["NativeOffset"]))));
so.. now what?
@niemyjski can you try this change, see if it fixes the real-world problem you were seeing?
Blake Niemyjski
@niemyjski
yeah
Sander Rijken
@srijken
hashCode = (hashCode * 397) ^ (Data == null ? 0 : Data.GetCollectionHashCode(new[] { "ILOffset" }));
Blake Niemyjski
@niemyjski
wonder if we should get rid of native offset too
Sander Rijken
@srijken
now my mac is slow
that code goes in Method
Blake Niemyjski
@niemyjski
wonder why the iloffset would be different on the same executing code
Sander Rijken
@srijken
maybe it’s some kind of optimization thing
JIT and pre-JIT or something
Blake Niemyjski
@niemyjski
C:\Code\Exceptionless.Net\Source\Shared\Models\Client\Data\EnvironmentInfo.cs(131): hashCode = (hashCode 397) ^ (Data == null ? 0 : Data.GetHashCode());
C:\Code\Exceptionless.Net\Source\Shared\Models\Client\Data\InnerError.cs(64): hashCode = (hashCode
397) ^ (Data == null ? 0 : Data.GetHashCode());
C:\Code\Exceptionless.Net\Source\Shared\Models\Client\Data\Method.cs(42): hashCode = (hashCode 397) ^ (Data == null ? 0 : Data.GetCollectionHashCode(new[] { "ILOffset" }));
C:\Code\Exceptionless.Net\Source\Shared\Models\Client\Data\Module.cs(51): hashCode = (hashCode
397) ^ (Data == null ? 0 : Data.GetHashCode());
C:\Code\Exceptionless.Net\Source\Shared\Models\Client\Data\Parameter.cs(36): hashCode = (hashCode 397) ^ (Data == null ? 0 : Data.GetHashCode());
C:\Code\Exceptionless.Net\Source\Shared\Models\Client\Data\RequestInfo.cs(100): hashCode = (hashCode
397) ^ (Data == null ? 0 : Data.GetHashCode());
C:\Code\Exceptionless.Net\Source\Shared\Models\Client\Data\SimpleError.cs(53): hashCode = (hashCode 397) ^ (Data == null ? 0 : Data.GetHashCode());
C:\Code\Exceptionless.Net\Source\Shared\Models\Client\Data\UserDescription.cs(43): hashCode = (hashCode
397) ^ (Data == null ? 0 : Data.GetHashCode());
C:\Code\Exceptionless.Net\Source\Shared\Models\Client\Data\UserInfo.cs(52): hashCode = (hashCode 397) ^ (Data == null ? 0 : Data.GetHashCode());
C:\Code\Exceptionless.Net\Source\Shared\Models\Client\Event.cs(82): hashCode = (hashCode
397) ^ (Data == null ? 0 : Data.GetHashCode());
should we change all of those to GetCollectionHashCode?
Sander Rijken
@srijken
yep
and dump DataDictionary.GetHashCode()
Blake Niemyjski
@niemyjski
dump?
I changed all those to GetCollectionHashCode
Sander Rijken
@srijken
the code inside DataDictionary, that can be removed
Blake Niemyjski
@niemyjski
ok
Sander Rijken
@srijken
“My understanding is that, when provided, the IL offset is simply mapped from the native offset using a table generated at JIT time (which may be an approximation due to optimizations). For the leaf native-frame, the native offset is where the exception was thrown while non-leaf native frames use the return address from the stack which may make it look like the exception was thrown by the instruction following the one where the exception actually happened."