Mycal
Staff member
As it goes, the past two weeks were basically, "One step forward, Two steps back." (Well technically, I've been on vacation for the past week, but we'll ignore that week). I've committed to being cross platform via Mono and MonoGame. I want this to work on Windows, Linux, and OSX. So naturally, I test regularly on another platform right? Well, kind of.
I've been putting off testing the server on a different platform since I had a strong suspicion that it was going to fail on a certain component. Well I was right. The game database is giving more headaches than anything else in this port. I've rewritten it so many times that I can't even keep track of the correct test database anymore. Agent Ransack tells me I have about 35 different "server.db3" files and about 15 other "server.*" db files. That's not really important though since I am now just deleting and generating a new database every run for testing purposes. But one of those ~50 database files has valid converted data, I think...
I decided to test the server load recently and it worked relatively well on my Windows 8 testing box. I moved it over to another Windows 7 VM and it also ran well there. So I decided to dump the binary over on my linux box and test it out, and crash and burn. From what I can tell through my logs, it very inconsistently fails on the world loaders. Sometimes it fails on loading Guilds, sometimes it fails on creating the players table, sometimes it fails on loading Maps, sometimes it fails loading scripts. It's not consistent at all, but the one consistent fact is, it always fails on the loaders. There's probably something wrong with my Linq-to-Entities implementation, but it's taking far too long to figure out.
For now, I'm just going to shelve these changes and revert back to good old queries. I lost a week of work, but they seem to work a lot more consistently. I am going to have to rewrite some other stuff that I don't want to shelve, so that's my plan for the next week.
I hope this is the last of my database issues. I've never had this much issue before, but this is my first time working multiplatform with mono and c#.
I've been putting off testing the server on a different platform since I had a strong suspicion that it was going to fail on a certain component. Well I was right. The game database is giving more headaches than anything else in this port. I've rewritten it so many times that I can't even keep track of the correct test database anymore. Agent Ransack tells me I have about 35 different "server.db3" files and about 15 other "server.*" db files. That's not really important though since I am now just deleting and generating a new database every run for testing purposes. But one of those ~50 database files has valid converted data, I think...
I decided to test the server load recently and it worked relatively well on my Windows 8 testing box. I moved it over to another Windows 7 VM and it also ran well there. So I decided to dump the binary over on my linux box and test it out, and crash and burn. From what I can tell through my logs, it very inconsistently fails on the world loaders. Sometimes it fails on loading Guilds, sometimes it fails on creating the players table, sometimes it fails on loading Maps, sometimes it fails loading scripts. It's not consistent at all, but the one consistent fact is, it always fails on the loaders. There's probably something wrong with my Linq-to-Entities implementation, but it's taking far too long to figure out.
For now, I'm just going to shelve these changes and revert back to good old queries. I lost a week of work, but they seem to work a lot more consistently. I am going to have to rewrite some other stuff that I don't want to shelve, so that's my plan for the next week.
I hope this is the last of my database issues. I've never had this much issue before, but this is my first time working multiplatform with mono and c#.