RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Daat99 OWLTR 2.8 Crashing/Corrupt World Saves

daat99

Moderator
Staff member
IndigoParadox said:
Well, I tried loading it once and the server just said "Loading..." for 5 minutes and then threw a serialization error. I didn't change anything, closed the server, opened it back up... And it loaded just fine. :rolleyes: Yes, I know, impossible. Perhaps it was some freak disk caching error or something. I don't know. All that's important is it works. :D

Errrr... I'm not sure if I still have that backup, though. I've got too many save backups lying around. :( I'll sort my stuff out and see.

EDIT: How very odd... I went through all the backups I was working with, and I just can't find one that causes the crash. I even had one that I was pretty sure was the same backup, and yet it won't crash. I'll definitely keep an eye on it. Sorry. :(
It's ok.
I'll post a new daat99holder script with a new log file when I'll be able to make 1.
Please check on it tomorrow (tonight?).
 

daat99

Moderator
Staff member
Ok, here's the new daat99holder and control center.
Latest version is v2.8 beta 4.

Please use this 2 instead of what you have right now.

This will create 2 log files:
daat99CCdebug.log ==> control center log
daat99DHdebug.log ==> daat99 holder log

When the logs will get to the size of 1mb it'll rename the log to the apropriate day and create a new log.
 
RunUO - [www.runuo.com] Version 1.0.0, Build 36918
Scripts: Compiling C# scripts...failed (13 errors, 4 warnings)
- Warning: Scripts\Customs\Modified\Regions\HouseRegion.cs: CS0108: (line 17, c
olumn 22) The keyword new is required on 'Server.Regions.HouseRegion.Initialize(
)' because it hides inherited member 'Server.Regions.GuardedRegion.Initialize()'

- Warning: Scripts\Customs\New\Commands\ExplodeCommand\Explode.cs: CS0183: (lin
e 38, column 28) The given expression is always of the provided ('Server.Mobile'
) type
- Warning: Scripts\Customs\New\Commands\ExplodeCommand\Explode.cs: CS0183: (lin
e 44, column 28) The given expression is always of the provided ('Server.Mobile'
) type
- Error: Scripts\Customs\New\Engines\Daat99s OWLTR\Daat99 Holder.cs: CS0246: (l
ine 432, column 9) The type or namespace name 'File' could not be found (are you
missing a using directive or an assembly reference?)
- Error: Scripts\Customs\New\Engines\Daat99s OWLTR\Daat99 Holder.cs: CS0246: (l
ine 434, column 5) The type or namespace name 'FileInfo' could not be found (are
you missing a using directive or an assembly reference?)
- Error: Scripts\Customs\New\Engines\Daat99s OWLTR\Daat99 Holder.cs: CS0246: (l
ine 435, column 10) The type or namespace name 'fi' could not be found (are you
missing a using directive or an assembly reference?)
- Error: Scripts\Customs\New\Engines\Daat99s OWLTR\Daat99 Holder.cs: CS0246: (l
ine 436, column 6) The type or namespace name 'fi' could not be found (are you m
issing a using directive or an assembly reference?)
- Error: Scripts\Customs\New\Engines\Daat99s OWLTR\Daat99 Holder.cs: CS0246: (l
ine 438, column 4) The type or namespace name 'StreamWriter' could not be found
(are you missing a using directive or an assembly reference?)
- Error: Scripts\Customs\New\Engines\Daat99s OWLTR\Daat99 Holder.cs: CS0246: (l
ine 442, column 5) The type or namespace name 'daat99debug' could not be found (
are you missing a using directive or an assembly reference?)
- Error: Scripts\Customs\New\Engines\Daat99s OWLTR\Daat99 Holder.cs: CS0246: (l
ine 447, column 5) The type or namespace name 'daat99debug' could not be found (
are you missing a using directive or an assembly reference?)
- Error: Scripts\Customs\New\Engines\Daat99s OWLTR\Daat99 Holder.cs: CS0246: (l
ine 454, column 7) The type or namespace name 'daat99debug' could not be found (
are you missing a using directive or an assembly reference?)
- Error: Scripts\Customs\New\Engines\Daat99s OWLTR\Daat99 Holder.cs: CS0246: (l
ine 460, column 5) The type or namespace name 'daat99debug' could not be found (
are you missing a using directive or an assembly reference?)
- Error: Scripts\Customs\New\Engines\Daat99s OWLTR\Daat99 Holder.cs: CS0246: (l
ine 463, column 5) The type or namespace name 'daat99debug' could not be found (
are you missing a using directive or an assembly reference?)
- Error: Scripts\Customs\New\Engines\Daat99s OWLTR\Daat99 Holder.cs: CS0246: (l
ine 468, column 5) The type or namespace name 'daat99debug' could not be found (
are you missing a using directive or an assembly reference?)
- Error: Scripts\Customs\New\Engines\Daat99s OWLTR\Daat99 Holder.cs: CS0246: (l
ine 472, column 5) The type or namespace name 'daat99debug' could not be found (
are you missing a using directive or an assembly reference?)
- Error: Scripts\Customs\New\Engines\Daat99s OWLTR\Daat99 OWLT Control Center.c
s: CS0200: (line 268, column 6) Property or indexer 'System.IO.FileSystemInfo.Na
me' cannot be assigned to -- it is read only
- Warning: Scripts\Customs\New\Engines\PostOffice\PostOfficeGump.cs: CS0219: (l
ine 88, column 10) The variable 'done' is assigned but its value is never used
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

I just dropped it in as a replacement. Looks like something's missing...
 

daat99

Moderator
Staff member
Bah I thought I tested it :(
Here's v2.8 beta 5:


P.S.
I removed the file size check, I don't have the time to compile it atm, I'm realy late :(
 

Kamron

Knight
I found the error for you Daat. Since you had to leave in such a hurry, I will leave a message about how to fix it. :) And for the record, I found it before daat's post above.


File Daat99 Holder.cs Line 475

Code:
			for ( int i = 0; i < alItemTypeList.Count; ++i )
				if ( alItemTypeList[i] != null )
					writer.Write( (string) alItemTypeList[i].ToString() );
				else
					writer.Write( (string) null );

That is how it should look.

Thanks to everyone who posted about the latest bug.
 

Kamron

Knight
IndigoParadox said:
Well, I tried loading it once and the server just said "Loading..." for 5 minutes and then threw a serialization error. I didn't change anything, closed the server, opened it back up... And it loaded just fine. :rolleyes: Yes, I know, impossible. Perhaps it was some freak disk caching error or something. I don't know. All that's important is it works. :D

Errrr... I'm not sure if I still have that backup, though. I've got too many save backups lying around. :( I'll sort my stuff out and see.

EDIT: How very odd... I went through all the backups I was working with, and I just can't find one that causes the crash. I even had one that I was pretty sure was the same backup, and yet it won't crash. I'll definitely keep an eye on it. Sorry. :(

Because if it crashed on the serialization (even non-fatal), then the backup will not happen.. It has to do with the way its coded.
 

Kamron

Knight
Daat99 and I are still working on the newest bug, even though we believe that we have it figured it out, we still do not know the underlying cause of it. You guys are encouraged to bring in your logs from crashes and any information you may get.

Thanks!
 

daat99

Moderator
Staff member
Just to add in to what XxSP1DERxX said the only possible crash that we could figure is still under the "theoretically impossible" title so while we "think" we know what cause it we can't tell because we can't understand what could make it null in the first place.

I do need all your logs that contain either ***crash*** or ***warning*** (or ***whatever***).
Please send me whatever you get preferably here but if you can't than to my email.

When I'll get home I'll try to compile v2.8 beta 6 for you guys with a bit more debug detailes but please use beta 5 asap.
 

daat99

Moderator
Staff member
v2.8 beta 6 is here, it contain some more info and the code that renames the files when they get to 1mb is in place.
Please let me know what errors\warnings you get, ty.
 

toddjumper

Wanderer
Ok yet again about 5 days after a crash it starts corrupting world saves AGAIN. I can not even load up my shard now, and players are upset. I will try an hour revert. Here is the crashing from the Daat99.txt file

***CRASH*** 12/14/2005 8:34:30 AM: ***CRASH*** Exception caught: System.NullReferenceException: Object reference not set to an instance of an object.
at Server.daat99.Daat99OWLTR.Serialize(GenericWriter writer) ***CRASH*** Please send daat99 this file. ***CRASH***
12/14/2005 9:19:31 AM: starting save version: 2
12/14/2005 9:19:31 AM: Finished saving OwltrOps.
12/14/2005 9:19:31 AM: Finished saving OwltrOps.
12/14/2005 9:19:31 AM: Finished removing null entries from StaticHolder.
***CRASH*** 12/14/2005 9:19:31 AM: ***CRASH*** Exception caught: System.NullReferenceException: Object reference not set to an instance of an object.
at Server.daat99.Daat99OWLTR.Serialize(GenericWriter writer) ***CRASH*** Please send daat99 this file. ***CRASH***
12/14/2005 10:04:38 AM: starting save version: 2
12/14/2005 10:04:38 AM: Finished saving OwltrOps.
12/14/2005 10:04:38 AM: Finished saving OwltrOps.
12/14/2005 10:04:38 AM: Finished removing null entries from StaticHolder.
***CRASH*** 12/14/2005 10:04:38 AM: ***CRASH*** Exception caught: System.NullReferenceException: Object reference not set to an instance of an object.
at Server.daat99.Daat99OWLTR.Serialize(GenericWriter writer) ***CRASH*** Please send daat99 this file. ***CRASH***
12/14/2005 10:12:07 AM: starting save version: 2
12/14/2005 10:12:07 AM: Finished saving OwltrOps.
12/14/2005 10:12:07 AM: Finished saving OwltrOps.
12/14/2005 10:12:07 AM: Finished removing null entries from StaticHolder.
***CRASH*** 12/14/2005 10:12:07 AM: ***CRASH*** Exception caught: System.NullReferenceException: Object reference not set to an instance of an object.
at Server.daat99.Daat99OWLTR.Serialize(GenericWriter writer) ***CRASH*** Please send daat99 this file. ***CRASH***
 

toddjumper

Wanderer
I can not load up any of my world saves for a whole day now. I am using your latest Beta fix you just posted and when my world is loading it just hangs there at Loading...

I reverted an entire 24 hours and now the world is loading fine. But this system corrupted 24 hours of world saves, that is bad.

Great... I have 20 players upset.
 

daat99

Moderator
Staff member
toddjumper said:
I can not load up any of my world saves for a whole day now. I am using your latest Beta fix you just posted and when my world is loading it just hangs there at Loading...

I reverted an entire 24 hours and now the world is loading fine. But this system corrupted 24 hours of world saves, that is bad.

Great... I have 20 players upset.
I think you're using beta 4.
I kinda need you to use beta 6 to see exactly what crashes :(

I'm sorry to hear that it currupt your saves for 24 hours.
It's due to the fact that the server have a serialization error but it doesn't crash it but oonly write an exception to the console.

The only other option is to force a restart (which won't load without user input) every time it crash.

Please let me know if you prefer the restart or the current exception method and I'll adjust the file acordingly.

**edit**
BTW I would suggest that you update the files as soon as you can when I release a new beta.
The newer betas usually have more safety code in place and more detailed logs are generated.
It'll take about a min to do a restart of the shard and it can save us 5 days of waiting for the next crash to happen.
Just my suggestion tho, feel free to do what you want with it.


I attached v2.8 beta 7 here, it includes a restart command in the event of a crash.
I can't realy test if it restarts or not because I can't reproduce the crash but it should work.
Let me know if you like it or not.
 

Jeff

Lord
toddjumper said:
I can not load up any of my world saves for a whole day now. I am using your latest Beta fix you just posted and when my world is loading it just hangs there at Loading...

I reverted an entire 24 hours and now the world is loading fine. But this system corrupted 24 hours of world saves, that is bad.

Great... I have 20 players upset.

Welcome to RunUO, you cant download something and expect it to work 100% without problems, especially something that says its in beta, imo thats your fault
 

daat99

Moderator
Staff member
Here's the latest 2.8 beta 8 with aditional null checks to avoid crashes and currupted saves:
 

toddjumper

Wanderer
>Welcome to RunUO, you cant download something and expect it to work 100% >without problems, especially something that says its in beta, imo thats your >fault

I'm not here to push "fault" on anyone, just to get a script fix and help Daat with showing him the crash logs. Yes I have players upset, but just showing the urgency at getting things fixed, I appreciate all Daat is doing more than you realize. So you can either help with support, the reason I am here, or you can offer sarcastic opinions.

On a side note, installed the latest Beta8, and loaded up a later world save and this time the saves loaded, so I did not have to use a 24 hour revert after all.
 

daat99

Moderator
Staff member
toddjumper said:
>Welcome to RunUO, you cant download something and expect it to work 100% >without problems, especially something that says its in beta, imo thats your >fault

I'm not here to push "fault" on anyone, just to get a script fix and help Daat with showing him the crash logs. Yes I have players upset, but just showing the urgency at getting things fixed, I appreciate all Daat is doing more than you realize. So you can either help with support, the reason I am here, or you can offer sarcastic opinions.

On a side note, installed the latest Beta8, and loaded up a later world save and this time the saves loaded, so I did not have to use a 24 hour revert after all.
That's great news, glad to hear you managed to reload your shard ;)
That is also extreamly wiered tho, I didn't even touched the deser section of the scripts, all I did so far is work on the serialization section.

I do need to see the log in case it'll say:
***null*** bla bla serial 00X ***null***
etc.
Please make sure you send it to me so I'll know where this crashes are coming from.
 

toddjumper

Wanderer
I am attaching a file that is being generated with the Beta8 version showing what exactly is Null and crashing- I do not understand what all the item numbers mean but perhaps you do.

Here is some examples


***NULL*** 12/15/2005 3:00:11 PM: ***NULL*** ItemTypeList i: 325 was null serial 005 ***NULL***, Please send daat99 this file! ***NULL***
***NULL*** 12/15/2005 3:00:11 PM: ***NULL*** ItemTypeList i: 326 was null serial 005 ***NULL***, Please send daat99 this file! ***NULL***
***NULL*** 12/15/2005 3:00:11 PM: ***NULL*** ItemTypeList i: 327 was null serial 005 ***NULL***, Please send daat99 this file! ***NULL***
 

daat99

Moderator
Staff member
toddjumper said:
I am attaching a file that is being generated with the Beta8 version showing what exactly is Null and crashing- I do not understand what all the item numbers mean but perhaps you do.

Here is some examples


***NULL*** 12/15/2005 3:00:11 PM: ***NULL*** ItemTypeList i: 325 was null serial 005 ***NULL***, Please send daat99 this file! ***NULL***
***NULL*** 12/15/2005 3:00:11 PM: ***NULL*** ItemTypeList i: 326 was null serial 005 ***NULL***, Please send daat99 this file! ***NULL***
***NULL*** 12/15/2005 3:00:11 PM: ***NULL*** ItemTypeList i: 327 was null serial 005 ***NULL***, Please send daat99 this file! ***NULL***
I would apretiate if you send me the actual file instead of copy\paste specific lines.
And yes I know what those lines mean and they help a lot figuring out part of the problem, please keep sending me all the logs you get with the ***something*** marks.
:)
 
Top