Issues occurring when transitioning code updates into a load-balancer situation


I'm a seasoned ASP.NET developer (15+ years) and Episerver is new to me as of just about two months ago.  I did the week-long developer training and then was asked to extend an existing page's class with a new property.  This easy code change got a "pass" from our internal QA staff, but QA doesn't test in a load-balanced environment.

Our setup has two web servers intended for public use, and a "content" server intended for internal use.  The major difference in configuration is that the public pair doesn't allow CMS logins.  So, upon deployment, the code got pushed to the content server and one of the public servers.  Obviously, all three point to the same database.  Upon trying to edit the new property on the content server, we saw an error message when trying to save the page, basically saying that the property didn't exist.  This wasn't a show-stopper, and about a week later the message disappeared after the second public server was updated with the same code.

I'm suspecting that the differing codebases caused this issue, with two servers trying to make the property available in the database, and the other server potentially trying to remove it.  Is anyone familiar enough with this to lend some advice?

Thanks in advance!

Jan 03, 2019 23:55
Scott Reed
Member since: 2010

During application init the model first providers sync all of the information around model and property changes between the application and the cache. If you have a single database and multiple sites with different code bases pointing together whenever the application is restarted or anything triggering the initialzation to happen occurs it will try to sync the database with the properties. So

Running different code bases could cause issues with the model syncing and it may be that if you server that wasn't deployed to still restarted at all it might have re-synced and caused model issues. If it's find now it might have done it again with code with the changes but there's potential this could happen again say if you one without the changes restarted independant of the others.

I'd suggest always making sure code/databases are aligned also on a lot of the episerver licences it breaches contract if you run different codebase versions when sharing licences.

Jan 04, 2019 14:48