Neos-Metaverse / NeosPublic

A public issue/wiki only repository for the NeosVR project
195 stars 9 forks source link

WorldCrash with DateTime Register write with specific values #2837

Open 3x1t-5tyl3 opened 3 years ago

3x1t-5tyl3 commented 3 years ago

Describe the bug?

Upon creation of a specific DateTime register (with logix, see screenshots) It crashes notzer0 on spawn but not on creation

Relevant issues

2592 #2821 #2190

To Reproduce

grafik Save the register and bring it back out causes the actual crash.

Expected behavior

No crash (like the rest of us)

Log Files

DESKTOP-T2OQP0J - 2021.8.18.1081 - 2021-08-22 20_46_59 - Copy.log

Relevant here is probably line 2377 onwards (where we did most of the testing)

Screenshots

unknown

How often does it happen?

Always

Does the bug persist after restarting Neos?

Yes

Neos Version Number

Beta 2021.8.18.1081

What Platforms does this occur on?

Windows

Link to Reproduction Item/World

No response

Did this work before?

I Don't Know

If it worked before, on which build?

No response

Additional context

The datetime register created crashed notzer0

Reporters

3x1t_5tyl3# 0001, notzer0# 3621, zkxs# 1039 @3x1t-5tyl3 @zkxs

shadowpanther commented 3 years ago

see reproducable items

but

Link to Reproduction Item/World

No response

Did you forget to add the link?

3x1t-5tyl3 commented 3 years ago

nah forgott to edit that line

ProbablePrime commented 3 years ago

screams

I AM THE TIME WIZARD.

shadowpanther commented 3 years ago

The actual value (253400000000) is too large to be unixtime in seconds, so unixtimestamp.com for example converts it to milliseconds. Something that does not makes that assumption (time.is) just goes over year 9999:

image
zkxs commented 3 years ago

The actual value (253400000000) is too large to be unixtime in seconds

This is untrue. C# uses a int64 for for Unix times, which can go up to 9223372036854775807.

253400000000 represents 9999-12-05T08:53:20Z

ProbablePrime commented 3 years ago

image ZkXS is right here.

Something else is going on.

image

This is probably another weird serialization issue similar to #1364

zkxs commented 3 years ago

I can maybe add some more detail.

  1. Create a DateTime from 253400000000 as shown in the screenshot in the original post
  2. This datetime should show as having a UTC time
  3. Save the value register to your inventory
  4. Load the value register from your inventory
  5. notzer0 immediately crashes, and you can see that the register is no longer a UTC time

Of all the people in the world with us while we were testing, only notzer0 crashed. I've had that register on my avatar for a while now without noticing it destroying anyone, so it's definitely something uncommon that causes it. notzer0 was in the en locale, not the en-US locale but that alone isn't the cause as 3x1t is also in en. It could possibly be something timezone related. I do not know what notzer0's UTC offset is.

I've got the exported json for the register here, but you should be able to build it on your own.

ProbablePrime commented 3 years ago

Who created this register and what timezone were they in when they created it?

@zkxs @3x1t-5tyl3

ProbablePrime commented 3 years ago

Ok scratch that, I just need everyone's Timezone :D. I can't reproduce this in my timezone or locale(en-gb).

So its gotta be timezone specific.

zkxs commented 3 years ago

I created it in CDT (UTC -5)

wompscode commented 3 years ago

I'm in AEST (UTC +10)

bredo228 commented 3 years ago

Got the same error trying to sync: I have no idea what item is causing this. In UTC+12 (NZST)

image

Full log file: ERIS - 2021.8.18.1081 - 2021-08-23 23_01_42.log

3x1t-5tyl3 commented 3 years ago

As mentioned above. It's reproduceable. A DateTime register is at fault here. Not sure if the value is evaluated and used without "storing" it will cause the same effect. In testing with @zkxs yesterday showed only issues when used in a register. Edit: And only if it's spawned out. If it's created it's fine; but if spawned out from the inventory (or when on an avatar or similar)

ProbablePrime commented 3 years ago

Thanks for the additional information.

I've still yet to crash with this. Its likely because the only reproduction has been sent to me as JSON. I need a BSON/7zbson equivalent.

Can anyone get me that?

zkxs commented 3 years ago

Here's a folder with one in it: neosrec:///U-runtime/R-7acfa5ea-f982-40a5-87c2-7c91e1f5b8fd

Here's a zip containing the 7zbson: (notzer0 crasher) DateTime.zip

I'm also curious if the crash would affect more people if we got a Sync closer to the upper limit... but December 5th is far enough away this doesn't feel like a matter of hours. I'm really not sure what's going on here.

ProbablePrime commented 3 years ago

Thanks!, Its most certainly a Binary conversion issue :(

bredo228 commented 3 years ago

Tested with UTC+12 and got crashed back to home so it's not just specific to UTC+10

bredo228 commented 3 years ago

Log: new 2.txt