Upgrade Version Hell

Posted by Community Admin on 03-Aug-2018 16:53

Upgrade Version Hell

All Replies

Posted by Community Admin on 23-May-2013 00:00

I currently have a SF 5.1 site.  Everything has been running reasonably well and I've been putting off upgrades using the "if it ain't broke..." philosophy.  Now I'm looking at upgrading to 6.0 sp1.  The upgrade docs indicate I must upgrade from 5.1>5.2, 5.2>5.4, and finally 5.4>6.0 sp1.

SF if the only product I use that requires this level of version-by-version upgrade procedure.  Upgrading from one version is already a painfully time consuming process.  Having to perform 3 upgrades to get to the most recent version is crazy.  The upgrade->test->deploy process usually sucks up the better part of a day.  Having to do it multiple times just plain sucks. 

Is there any plan in the works to make upgrades a more reasonable process?

Steve

Posted by Community Admin on 23-May-2013 00:00

+1 SteveV, several of us feel you. See here:
www.sitefinity.com/.../start-fresh-with-sf-5-4-but-bring-published-content-from-sf-5-1-w-o-upgrading-

The Sitefinity team may be looking at this, at least I hope.

Gregory

Posted by Community Admin on 24-May-2013 00:00

Hi Gregory,

This is a good start and I added my vote in PITS but it really doesn't address the required incremental upgrades issue.  Imagine if Microsoft did this with their operating systems--most of us would still be running Windows 95 (or gasp 3.1).  Frankly, I can't imagine that this helps Telerik's business.  If I were running 4.X and was considering purchasing an upgrade only to find out the crazy number of incremental upgrades I had to do to get to 6.X, I might very well look at another product--certainly not in Telerik's interest to have customer doing that.

Steve

Posted by Community Admin on 24-May-2013 00:00

It's not that big of a deal, and certainly way easier than a 3.x upgrade.  Imagine if instead of a bin file to update you had to windiff individual files on the entire webroot (yeah, that was the 3.x upgrade process).

It should just be as easy as:
1) Drop in Bin\ClientBin\Sitefinity folders
2) Build, run
3) Drop in Bin\ClientBin\Sitefinity folders
4) Build, run
...
5) Use the latest _EmptyProject Webconfig
6) Validate

I can do 5+ sites in a couple hours, I rarely encounter issues after an upgrade certainly nothing where I don't feel like I can just do it on a whim quickly.

If you have to go the latest anyway, why bother validating after EVERY upgrade...what if you encounter a bug which is fixed a couple versions later

Also that's the *safe cover our asses* upgrade path...if you do a backup you can likely just skip multiple versions (like 5.1-6.0)

Posted by Community Admin on 24-May-2013 00:00

Steve, what do you mean by this line: Also that's the *safe cover our asses* upgrade path...if you do a backup you can likely just skip multiple versions (like 5.1-6.0)?

My site is at 5.1 right now. Are you saying there's a way for me to go straight to 6.0 SP1 w/o the upgrades in between? If so, would you please share that pearl of wisdom?

Many thanks in advance,
Gregory

Posted by Community Admin on 24-May-2013 00:00

Maybe I'm doing it wrong.  I generally do the upgrades on my development machine, build, run, fix any problems, test, and deploy all of the files except the config files to my live server.

Next, I log into the live site's SF backend which triggers the database upgrade for that version.  Next, I confirm everyting works as expected and repeat the process for each upgrade. 

If there's a simpler method I'd love to hear about it.

Posted by Community Admin on 24-May-2013 00:00

Just upgraded from 5.1 to 5.2. Now I get this compilation error:

Error   63  Could not load file or assembly 'Telerik.OpenAccess.35.Extensions, Version=2012.2.628.2, Culture=neutral, PublicKeyToken=7ce17eeaf1d59342' or one of its dependencies. General Exception (Exception from HRESULT: 0x80131500)
ExceptionString:
System.IO.FileLoadException: Could not load file or assembly 'Telerik.OpenAccess.35.Extensions, Version=2012.2.628.2, Culture=neutral, PublicKeyToken=7ce17eeaf1d59342' or one of its dependencies. General Exception (Exception from HRESULT: 0x80131500)
File name: 'Telerik.OpenAccess.35.Extensions, Version=2012.2.628.2, Culture=neutral, PublicKeyToken=7ce17eeaf1d59342' ---> System.Exception: The referenced assembly 'C:\Program Files (x86)\Telerik\Sitefinity 4.3\Projects\NLG Sitefinity Site\NLG Sitefinity Site\bin\Telerik.OpenAccess.35.Extensions.dll' has the wrong version; expected Version=2012.2.628.2 but found Version=2012.3.1012.1.
   at Telerik.OpenAccess.SPI.AssemblyProvider.LoadFromReferences(String assemblyName)
   at Telerik.OpenAccess.SPI.AssemblyProvider.RefResolveEventHandler(Object sender, ResolveEventArgs args)
   at System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName)
   at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, Boolean loadTypeFromPartialName, ObjectHandleOnStack type)
   at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName)
   at System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
   at System.Type.GetType(String typeName)
   at Telerik.OpenAccess.Sdk.Enhancer.Enhancer.CrossDomainRunImpl(AssemblyLoader assemblyLoader)
   at Telerik.OpenAccess.Sdk.Enhancer.EnhancerBase.CrossDomainRun()
 
    C:\Program Files (x86)\Telerik\Sitefinity 4.3\Projects\NLG Sitefinity Site\NLG Sitefinity Site\obj\Debug\SitefinityWebApp.dll   NLGSitefinityWebApp


This has bitten me several times.  In this post http://www.sitefinity.com/developer-network/forums/developing-with-sitefinity-/using-open-access-in-sitefintiy-when-i-have-the-full-product-installed#Cda-rQI4v0CrezWfIcUysA  Josh Morales provides a workaround via a link to his  web site. The workaround requires downloading a version of the OpenAccess SDK that matches the version the SF project is looking for.  The problem?  Telerik no longer offers the older versions for Download.  This is what makes "upgrades" such a joy.  I have yet to complete one without some kind of problem that results in a multi-hour fix hunt.



Posted by Community Admin on 28-May-2013 00:00

Hello Steve,

Please note that the received exception indicates that the current version of Telerik OpenAccess that your Sitefinity project references does not match the one that the Sitefinity assemblies have been built with. Alternatively if you have a custom module that has a persistent model and needs to be enhanced, it could be that the OpenAccess version your targets file points to is also different than the one the current Sitefinity assemblies have been built with.

Each Sitefinity project manager creates an _EmptyProject folder, which contains the defualt project files for a Sitefintiy project of that version. In the /bin folder inside this _EmptyProject folder you can find the Telerik OpenAccess assemblies which are used by the corresponding Sitefinity version, and can reference them in your current project, as this way you're ensuring that the proper version fof these assmeblies ar eused by your project (instead of referencing them from GAC, fro example, which will pull the currently installed OpenAccess version on the machine).

If you have a custom module that has a persistent model and needs to be enhanced, you need to change the location of the targets file as well. To obtain the correct targets and enhancer for the particular Sitefinity  version, you can download the Sitefinity SDK for that version. You can find all available SDK version in your account here.

Regards,
Boyan Barnev
Telerik

Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items

Posted by Community Admin on 28-May-2013 00:00

Hi Boyan,

I do have a number of custom modules that use persistance but they are all part of the main project.  I don't have any modules in seperate assemblies so all of the modules are using the same OpenAccess references.  I had already downloaded the SF 5.2 SDK before I posted.  My project file is using the following path for the OpenAccess.targets:

<Import Condition="Exists('$(MSBuildExtensionsPath)\OpenAccess.targets')" Project="$(MSBuildExtensionsPath)\OpenAccess.targets" />

which in turn expands to: C:\Program Files (x86)\MSBuild\OpenAccess.targets

The OpenAccess.targets file defines the following "OpenAccessPath":
<OpenAccessPath Condition="'$(OpenAccessPath)'==''">C:\Program Files (x86)\Telerik\OpenAccess ORM\</OpenAccessPath>

which points to the OpenAccess product install.  Since I can't install an older version, the assemblies don't match what SF is expecting.  Am I missing something here?

Thanks -- Steve





Posted by Community Admin on 28-May-2013 00:00

I got it to work by screwing with the "OpenAccessPath" and "EnhancerAssembly" values in the OpenAccess.targets file.  Original values were:

<OpenAccessPath Condition="'$(OpenAccessPath)'==''">C:\Program Files (x86)\Telerik\OpenAccess ORM\</OpenAccessPath>
<EnhancerAssembly Condition="'$(EnhancerAssembly)'==''">$(OpenAccessPath)\sdk\enhancer.exe</EnhancerAssembly>

New values are:
<OpenAccessPath Condition="'$(OpenAccessPath)'==''">C:\Program Files (x86)\Telerik\Sitefinity 5.2\SDK\Content\Common\Dependencies\</OpenAccessPath>
<EnhancerAssembly Condition="'$(EnhancerAssembly)'==''">$(OpenAccessPath)\sdk\enhancer.exe</EnhancerAssembly>

Now I can compile and run but the Ecommerce module is missing from the backend.  Looking at the "Administration>Modules" backend page, there's a red exclamation icon on the ecommerce module and "Failed Details" link shows the following error detail:
Insert of '1567185022-d9b4ccf1-aaf7-402f-8572-ce6a90721eb4' failed: Telerik.OpenAccess.RT.sql.SQLException: Cannot insert the value NULL into column 'temp_column_a', table 'NLGSitefinity.dbo.sf_permissions'; column does not allow nulls. INSERT fails. The statement has been terminated. at Telerik.OpenAccess.RT.Adonet2Generic.Impl.PreparedStatementImp.execute() at OpenAccessRuntime.Relational.conn.PooledPreparedStatement.execute() at OpenAccessRuntime.Relational.RelationalStorageManager.generateInserts(NewObjectOID oid, Int32 index, ClassMetaData cmd, PersistGraph graph, Int32[] fieldNos, CharBuf s, Object[] oidData, IntArray toUpdateIndexes) INSERT INTO [sf_permissions] ([id], [app_name], [deny], [grnt], [last_modified], [object_id], [principal_id], [set_name], [voa_version]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) (set event logging to all to see parameter values) Telerik.OpenAccess.RT.sql.SQLException: Cannot insert the value NULL into column 'temp_column_a', table 'NLGSitefinity.dbo.sf_permissions'; column does not allow nulls. INSERT fails. The statement has been terminated. at Telerik.OpenAccess.RT.Adonet2Generic.Impl.PreparedStatementImp.execute() at OpenAccessRuntime.Relational.conn.PooledPreparedStatement.execute() at OpenAccessRuntime.Relational.RelationalStorageManager.generateInserts(NewObjectOID oid, Int32 index, ClassMetaData cmd, PersistGraph graph, Int32[] fieldNos, CharBuf s, Object[] oidData, IntArray toUpdateIndexes)

Any thoughts?

Thanks--Steve



Posted by Community Admin on 31-May-2013 00:00

Hello Steve,

I'm glad to hear that the provided information has pointed you in the right direction for resolving the problem.

The current issue you're experiencing indicates a possible failed upgrade script, wehre the temporary column has nod been dropped during the execution of the upgrade scripts. The most probable cause for the failed upgrade script is the exception that has occurred during the upgrade (due to the incorrect OA version). Our best practices recommendation would be to attempt at goign through the upgrade process again, but this time, please configure the project to point to the correct version fo telerik.OpenAccess prior to starting the web site after the upgrade,  and let us know if any issues persist.

Regards,
Boyan Barnev
Telerik

Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items

Posted by Community Admin on 01-Jun-2013 00:00

Unfortunately, I continue to encounter one problem after another and a full week after starting the 5.1>5.2 upgrade I still don't have 5.2 working on my dev system.

After sorting out the erroneous database table column issue I discovered that my 5.2 license was missing the Ecommerce module.  After, two emails to sales@sitefinity.com in two days, both of which went unanswered, my support ticket was updated indicating that the license was updated.  Two full days lost due to a stupid oversight on someone's part while entering my license info. 

With the license issue resolved, I set out to test the site on my local machine before publishing the changes to my production server.  Five minutes later I was already dead in the water: Adding an item to the shopping cart results in a div message with the following:

This item cannot be added to your shopping cart at this time.

I've tried dozens of items all with the same result.  I can edit and save the product in the backend so there doesn't seem to be an issue with the product itself. I've tried recycling the app pool, restarting the web server all without change.

Looking at the error log I see one error:
----------------------------------------
Timestamp: 5/31/2013 8:02:09 PM
 
Message: HandlingInstanceID: 6fe85e4c-3d38-45b1-927a-cd623c53d628
An exception of type 'System.ArgumentException' occurred and was caught.
------------------------------------------------------------------------
05/31/2013 16:02:09
Type : System.ArgumentException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message : Invalid type specified Telerik.Sitefinity.Modules.Ecommerce.Catalog.CatalogDataProviderBase
Source : Telerik.Sitefinity
Help link :
ParamName :
Data : System.Collections.ListDictionaryInternal
TargetSite : TProviderBase InstantiateProvider(Telerik.Sitefinity.Configuration.IDataProviderSettings, System.Type, Telerik.Sitefinity.Abstractions.ExceptionPolicyName, Telerik.Sitefinity.Data.ManagerBase`1[TProviderBase])
Stack Trace :    at Telerik.Sitefinity.Data.ManagerBase`1.InstantiateProvider(IDataProviderSettings providerSettings, Type providerType, ExceptionPolicyName policy, ManagerBase`1 manager)
 
Additional Info:
 
MachineName : STEVE4
TimeStamp : 5/31/2013 8:02:09 PM
FullName : Telerik.Sitefinity.Utilities, Version=5.2.3800.0, Culture=neutral, PublicKeyToken=b28c218413bdf563
AppDomainName : /LM/W3SVC/1/ROOT/NLGSitefinityWebApp-1-130145041017573328
ThreadIdentity : svibert
WindowsIdentity : IIS APPPOOL\NLGSiteFinity
 
 
Category: ErrorLog
 
Priority: 0
 
EventId: 9010
 
Severity: Warning
 
Title:Enterprise Library Exception Handling
 
Machine: STEVE4
 
App Domain: /LM/W3SVC/1/ROOT/NLGSitefinityWebApp-1-130145041017573328
 
ProcessId: 9136
 
Process Name: c:\windows\system32\inetsrv\w3wp.exe
 
Thread Name:
 
Win32 ThreadId:6984
 
Extended Properties:
----------------------------------------

The error only occurs on the first add to cart after restarting the web site.  Subsequent attempts to add items to the cart do not result in an error entry in the log.

Support has been helpful but even though I have the "Standard Priority Support" option with 24 hr M-F response time, each ticket update takes a full 24 hours.  So 5 replies from support takes 5 days.  I have yet to see multiple replies in one day.  At this rate, it may be days or weeks before I get this going.  Overall a painfully frustrating process and experience.

Posted by Community Admin on 05-Jun-2013 00:00

Hi Steve,

I hope you are doing well today.

We would need a copy of your project to investigate. Can you please open a support ticket and submit your project to us?

Thank you.

Regards,
Patrick Dunn
Telerik

Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items

Posted by Community Admin on 05-Jun-2013 00:00

Hi Patrick,

Thanks for the reply.  I already have a ticket open and uploaded my project and database on Monday morning.  I received a reply this morning from tech support indicating that there was a column named "title" (not to be confused with "title_") in the sf_ec_cart_detail table that shouldn't be there and should be deleted.  
I deleted the column and that did solve the  "This item cannot be added to your shopping cart at this time." problem. But now I get the following error when I begin checkout:

Server Error in '/NLGSitefinityWebApp' Application.
--------------------------------------------------------------------------------
 
A required control was not found in the template for "~/SfCtrlPresentation/OpenAccessDataProvider,71cc734324a940e586291c2cec50e9ca.ascx". The control must be assignable from type "System.Web.UI.ITextControl" and must have ID "stateProvinceData".
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
 
Exception Details: Telerik.Sitefinity.Web.UI.TemplateException: A required control was not found in the template for "~/SfCtrlPresentation/OpenAccessDataProvider,71cc734324a940e586291c2cec50e9ca.ascx". The control must be assignable from type "System.Web.UI.ITextControl" and must have ID "stateProvinceData".
 
Source Error:
 
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 
 
Stack Trace:
 
 
[TemplateException: A required control was not found in the template for "~/SfCtrlPresentation/OpenAccessDataProvider,71cc734324a940e586291c2cec50e9ca.ascx". The control must be assignable from type "System.Web.UI.ITextControl" and must have ID "stateProvinceData".]
   Telerik.Sitefinity.Web.UI.GenericContainer.ThrowException(Type requiredType, String controlId) +74
   Telerik.Sitefinity.Web.UI.GenericContainer.GetControl(String id, Boolean required) +262
   Telerik.Sitefinity.Modules.Ecommerce.Orders.Web.UI.CheckoutViews.ShippingAndBillingInformation.InitializeControls(GenericContainer container) +680
   Telerik.Sitefinity.Web.UI.SimpleView.CreateChildControls() +82
   System.Web.UI.Control.EnsureChildControls() +182
   System.Web.UI.Control.PreRenderRecursiveInternal() +60
   System.Web.UI.Control.PreRenderRecursiveInternal() +222
   System.Web.UI.Control.PreRenderRecursiveInternal() +222
   System.Web.UI.Control.PreRenderRecursiveInternal() +222
   System.Web.UI.Control.PreRenderRecursiveInternal() +222
   System.Web.UI.Control.PreRenderRecursiveInternal() +222
   System.Web.UI.Control.PreRenderRecursiveInternal() +222
   System.Web.UI.Control.PreRenderRecursiveInternal() +222
   System.Web.UI.Control.PreRenderRecursiveInternal() +222
   System.Web.UI.Control.PreRenderRecursiveInternal() +222
   System.Web.UI.Control.PreRenderRecursiveInternal() +222
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4201
 
  
 
 
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.551


The fact that (so far) there have been 2 tables with "extra" columns after the upgrade process doesn't make me feel all that confident that this will be the end of it.  Makes me wonder how many more problems I (or my visitors) will stumble across as other functionality is accessed. 

Steve

Posted by Community Admin on 06-Jun-2013 00:00

Hello Steve,

 It seems like something may have gone wrong during the upgrade process for the database. Considering how many changes were made to the database in 6.0 for ecommerce it seems fair to reason that this would be the cause. As for resolving the issues we have to approach them 1 by 1 but a best solution - if possible - would be to try the upgrade process again and confirm that the tables were updated correctly.

With ecommerce having so many changes made it is also important to read over the breaking changes.

http://www.sitefinity.com/documentation/documentationarticles/developers-guide/changes-and-backward-compatibility/breaking-changes-in-sitefinity-6-0/sitefinity-6-0-ecommerce-breaking-changes

The error you receive now is because a portion of your checkout control does not have "stateProvinceData" control ID. It is required. You can download all of the 6.0 templates in the SDK and then use them in your site as they will have all the required controls. This error will specifically show up if you are using an external template and have not updated it with the latest control requirements.

Regards,
Patrick Dunn
Telerik
Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items

Posted by Community Admin on 06-Jun-2013 00:00

Hi Patrick,

Note that I'm currently upgrading to 5.2 in hopes that I might someday make enough progress to actually get to version 6.0.  I am in fact using a custom template but you should note that there is no mention of changes to ecommerce templates in the 5.2 breaking changes document.

Regards -- Steve

Posted by Community Admin on 07-Jun-2013 00:00

Hi Steve,

 The template that needs this control is the ShippingAndBillingInformation step of the checkout control. Please check your template and ensure that this control is there somewhere:

<asp:Label ID="stateProvinceData" CssClass="sfstateProvinceData" style="display:none;" runat="server" />

Thank you.

Regards,
Patrick Dunn
Telerik
Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items

Posted by Community Admin on 07-Jun-2013 00:00

Hi Patrick,

That did it--thanks.

Steve

This thread is closed