[Upgrade] Sitefinity 14.4 Upgraded Failed

Dear All,

​

I'm upgrading from v13.3 to v14.4. The database size is around 42GB.

I followed the official upgrade instructions, used CLI to upgrade my solution. However the upgrade is stuck at following step:

  1. -- Index 'idx_sf_dyn_src_key' was not detected in the database. It will be created CREATE INDEX [idx_sf_dyn_src_key] ON [sf_dynamic_content]([system_src_key])

Screenshot below:

Upgrade_Stuck 

I went through the error logs and tried the below solution, it didn't help:

Upgrade: Process get stuck when database is huge - Progress Community

 

I would appreciate someone from support team looking into this to fix the problem asap.


  • Jochem Bökkers (Enso DX)

    Hi @Priyabrata Dash (EY)​ 

    If you've confirmed you're using sql developer edition (to deal with the large db size), have rebuild indexes and increased the time-out and you'd still like official Progress support, you'd have to file a support ticket here.

     

    BR,

    Jochem

    • I'm using SQL Server Developer/Enterprise version, have rebuild the indexes following the article and increased the time-out as well. I wanted to raise a support ticket but realized my license doesn't have support service in it thus I'm not sure how to raise a support ticket.

      • Jochem Bökkers (Enso DX)

        Hi @Priyabrata Dash (EY)​ 

         

        I understand.

        If your license doesn't have support, you can go to this page and contact Progress about support options, or leave it here for the community to try and assist.

         

        Does the upgrade log give any further details?

         

      • I also get this error:

        1. Unable to load config section "toolboxesConfig", line - 1, position - 222. ---> Key in a remove operation is either missing or empty.
        2.  
        3. at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.LoadSectionFromReader(ConfigSection section, XmlReader reader, LoadContext loadContext)
        4. at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.LoadElementFromDatabase(ConfigSection section, LoadContext loadContext)
        5. at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.TryLoadSectionFromDatabase(ConfigSection section, Boolean initial, LoadContext loadContext)
        6. at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.LoadSection(ConfigSection section)
        7. at Telerik.Sitefinity.Configuration.ConfigSection.Initialize(ConfigProvider provider)
        8. at Telerik.Sitefinity.Configuration.Config.GetSectionInternal(Type sectionType, Boolean safeMode, String sectionName)
        9. at Telerik.Sitefinity.Configuration.Config.GetSectionPrivate(Type sectionType, Boolean safeMode, String sectionName)
        10. at Telerik.Sitefinity.Configuration.Config.GetSectionPrivate[TSection](Boolean safeMode)
        11. at Telerik.Sitefinity.Frontend.GridSystem.GridWidgetRegistrator.RegisterToolboxItem(String fileName, String oldFileName)
        12. at Telerik.Sitefinity.Frontend.FilesMonitoring.GridFileManager.FileAdded(String fileName, String filePath, FileData fileData, String packageName)
        13. at Telerik.Sitefinity.Frontend.FilesMonitoring.FileMonitor.<>c__DisplayClass22_0.<GetFileChangedDelegate>b__0(Object[] p)
        14. at Telerik.Sitefinity.Services.SystemManager.RunWithElevatedPrivilege(RunWithElevatedPrivilegeDelegate delegateToRun, Object[] parameters, String urlRequest)
        15. at Telerik.Sitefinity.Frontend.FilesMonitoring.FileMonitor.FileChanged(String filePath, FileChangeType changeType, String oldFilePath, FileData fileData)
        16. at Telerik.Sitefinity.Frontend.FilesMonitoring.FileMonitor.ProcessDirecotryFiles(DirectoryInfo dirInfo)
        17. at Telerik.Sitefinity.Frontend.FilesMonitoring.FileMonitor.Start(IList`1 directoriesInfo)
        18. at Telerik.Sitefinity.Frontend.FilesMonitoring.FileMonitoringInitializer.RegisterFileObservers()
        19. at Telerik.Sitefinity.Frontend.FilesMonitoring.FileMonitoringInitializer.Initialize()
        20. at Telerik.Sitefinity.Frontend.FrontendModuleInstaller.Bootstrapper_Initialized(IEnumerable`1 initializers)
        21. at Telerik.Sitefinity.Frontend.FrontendModule.Bootstrapper_Initialized(Object sender, ExecutedEventArgs e)
        22. at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
        23. at Telerik.Sitefinity.Abstractions.Bootstrapper.OnInitialized(Object sender, ExecutedEventArgs args)
        24. at Telerik.Sitefinity.Abstractions.Bootstrapper.Bootstrap()
        25. at Telerik.Sitefinity.Web.SitefinityHttpModule.<>c.<BootstrapAsync>b__4_0(Object ctx)
        26. --->
        27. at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.LoadCollectionElement(ConfigElementCollection collection, XmlReader reader, LoadContext loadContext, Boolean& skipNextRead, ConfigElement& element)
        28. at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.LoadElement(ConfigElement element, XmlReader reader, LoadContext loadContext, Boolean isNew, Boolean validateTagName)
        29. at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.LoadPropertyElement(ConfigElement element, XmlReader reader, LoadContext loadContext)
        30. at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.LoadElement(ConfigElement element, XmlReader reader, LoadContext loadContext, Boolean isNew, Boolean validateTagName)
        31. at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.LoadCollectionElement(ConfigElementCollection collection, XmlReader reader, LoadContext loadContext, Boolean& skipNextRead, ConfigElement& element)
        32. at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.LoadElement(ConfigElement element, XmlReader reader, LoadContext loadContext, Boolean isNew, Boolean validateTagName)
        33. at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.LoadPropertyElement(ConfigElement element, XmlReader reader, LoadContext loadContext)
        34. at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.LoadElement(ConfigElement element, XmlReader reader, LoadContext loadContext, Boolean isNew, Boolean validateTagName)
        35. at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.LoadSectionFromReader(ConfigSection section, XmlReader reader, LoadContext loadContext)

        Attached latest log file.

  • Kevin Reed (Springthrough)

    Hi @Priyabrata Dash (EY)​ , I've not dealt with this issue specifically, but I have a couple of suggestions.

     

    1. I noticed a bunch of thread aborted messages in the log. It looks like you're using full IIS. You could try to increase the timeout settings in your app pool in case your process is being terminated. You can check Idle Time-out (minutes) and Regular Time Interval (minutes).
    2. If the upgrade screen tells you what index is being created, you could try to create the index yourself in SQL Management Studio or some other tool.
    3. You could try to create an empty database, point your connection string at that database, and have Sitefinity create the necessary tables and indexes, then use SQL Management Studio to script the indexes from the empty database and run them on the big database. The script of course would have to be smart enough to handle existing indexes and probably drop them before creating them again.

     

    To be clear, I've never tried creating Sitefinity database records by hand, so this may not work. If you try it, make sure you have good backups. :)

  • Kevin Reed (Springthrough)

    Also, If I were you, I'd be curious to know what is taking up so much space in the database. Likely media content if images are stored in the database?

     

    The table you referenced in your first post (sf_dynamic_content) is not one of the ones I usually see growing large in a large database. You can use the query below to find table size. If you use this query, you may want to add `order by reserved desc` at the end of the last query.

     

    1. set nocount on
    2.  
    3. declare @rownum int
    4. declare @tblname varchar(50)
    5.  
    6. declare @tables table (
    7. rownum int identity (1,1),
    8. tblname varchar(50)
    9. )
    10.  
    11. declare @results table (
    12. name varchar(50),
    13. rows varchar(50),
    14. reserved varchar(50),
    15. data varchar(50),
    16. index_size varchar(50),
    17. unused varchar(50)
    18. )
    19.  
    20. insert into @tables select name from sysobjects where OBJECTPROPERTY(id, 'IsUserTable') = 1 order by name
    21. set @rownum = 0
    22.  
    23. while 1 = 1 begin
    24. set @rownum = @rownum + 1
    25. select @tblname = tblname from @tables where rownum = @rownum
    26. if @@rowcount = 0 break
    27. insert into @results exec sp_spaceused @tblname, true
    28. end
    29.  
    30. select
    31. name,
    32. rows,
    33. cast(replace(reserved, ' KB', '') as int) as reserved,
    34. cast(replace(data, ' KB', '') as int) as data,
    35. cast(replace(index_size, ' KB', '') as int) as index_size,
    36. cast(replace(unused, ' KB', '') as int) as unused
    37. from
    38. @results

     

     

     

  • Jack Cy Wong (Partner)

    Hi @Priyabrata Dash (EY)​ 

    Did you solve this issue? As I'm facing the same problem with the same error message as "An exception occurred during the execution of 'Extent<Telerik.Sitefinity.DynamicModules.Model.DynamicContent>().Cast().Where(a => (a.LastModifiedBy != Guid.Empty)).Where(a => a.LanguageData.Any(b => value(Telerik.Sitefinity.Data.OA.OpenAccessConnection+<>c__DisplayClass37_0`1[Telerik.Sitefinity.DynamicModules.Model.DynamicContent]).sql.SQL(new [] {Convert(b.LastModifiedBy)}))).Take(100)"

    • If you are talking about the exception, I mentioned in my original thread then it was because for me all Sitefinity configs were stored in database but when I did the upgrade my web.config had database mode="Auto" which essentially cleared the respective value from the table row in config table. I had to manually insert the desired value into the respective row to make it work.

       

      I suggest you check first if this is the case for you.