Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Chris Tomlinson 3 posts 23 karma points
    Apr 22, 2013 @ 14:05
    Chris Tomlinson
    0

    Courier trial bug (document types don't work)

    Hi,

    I’m trying out the Courier trial with the intention of using it to keep our production Umbraco instances in sync after we put our website live next week.

    I have found a way to isolate a specific bug that seems to prevent the software from working at all on even a vanilla installation of Umbraco and I’d appreciate your advice on whether there is anything we can do to work around the problem and failing that, how long it would take you to release a version with the bug fixed.

    Environment details:
    Umbraco 6.0.3
    MySQL 5.5.25
    Courier 2.7.5 (downloaded through the package installer in the back office today)

    I installed a clean Umbraco instance and then put the “Simple starter kit” onto it before installing Courier and testing its functionality.

    The problem is that I can’t produce any valid revision containing document types. From the exceptions it’s pretty clear that the fault lies in the SQL that is being sent to MySQL so I hope it’s a relatively small change that has just been overlooked in the recent work to support Umbraco 6.x or a subtle difference with our MySQL version.

    There are two ways to reproduce the same underlying exception:
    1) Click “Package all” on the select revision content page
    2) Click “Add” on the “Document Types” content type on that same page.

    This is the full exception message in the log_Error.txt file when trying to “package all”:

    22/04/2013 11:02:22; NHibernate.Exceptions.GenericADOException: could not execute query
    [ SELECT this_.[childContentTypeId] as column1_0_0_, this_.[parentContentTypeId] as column2_0_0_ FROM cmsContentType2ContentType this_ WHERE this_.[parentContentTypeId] = ?p0 ]
    Positional parameters: #0>1129
    [SQL: SELECT this_.[childContentTypeId] as column1_0_0_, this_.[parentContentTypeId] as column2_0_0_ FROM cmsContentType2ContentType this_ WHERE this_.[parentContentTypeId] = ?p0] ---> MySql.Data.MySqlClient.MySqlException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[childContentTypeId] as column1_0_0_, this_.[parentContentTypeId] as column2_0_0' at line 1
    at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
    at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)
    at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)
    at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
    at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
    at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
    at MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
    at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
    at NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd)
    at NHibernate.Loader.Loader.GetResultSet(IDbCommand st, Boolean autoDiscoverTypes, Boolean callable, RowSelection selection, ISessionImplementor session)
    at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies)
    at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies)
    at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters)
    --- End of inner exception stack trace ---
    at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters)
    at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters)
    at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes)
    at NHibernate.Loader.Criteria.CriteriaLoader.List(ISessionImplementor session)
    at NHibernate.Impl.SessionImpl.List(CriteriaImpl criteria, IList results)
    at NHibernate.Impl.CriteriaImpl.List(IList results)
    at NHibernate.Impl.CriteriaImpl.List[T]()
    at NHibernate.Criterion.QueryOver`1.List()
    at NHibernate.Criterion.QueryOver`1.NHibernate.IQueryOver<TRoot>.List()
    at Umbraco.Courier.Persistence.V6.NHibernate.Helpers.ContentTypeHelper.All(ItemIdentifier id, ISession session) in c:\Program Files (x86)\teamcity\buildAgent\work\650bafc4b83aa858\Core\Umbraco.Courier.Persistence.V6.NHibernate\Helpers\ContentTypeHelper.cs:line 107
    at Umbraco.Courier.Persistence.V6.NHibernate.Persisters.DocumentyTypeItem.AvailableItems[T](ItemIdentifier itemId) in c:\Program Files (x86)\teamcity\buildAgent\work\650bafc4b83aa858\Core\Umbraco.Courier.Persistence.V6.NHibernate\Persisters\DocumentyType.cs:line 31
    at Umbraco.Courier.Core.ItemCrud.AvailableItems[T]()
    at Umbraco.Courier.Core.ItemCrudProvider.AvailableItems[T]()
    at Umbraco.Courier.ItemProviders.DocumentTypeItemProvider.AvailableSystemItems()
    at Umbraco.Courier.RepositoryProviders.Local.GetChildren(ItemIdentifier itemID)
    at Umbraco.Courier.RepositoryProviders.Local.GetRootItems(Guid providerID)
    at Umbraco.Courier.Core.Packaging.RevisionPackaging.AddToQueue(RevisionManifest manifest)
    at Umbraco.Courier.Core.Tasks.PackagingTask.Run()
    at Umbraco.Courier.Core.TaskManager.manageTask(IRevisionTask value)


    The second error is rendered on screen as an empty tree view apart from a red exclamation mark and the text "Load error! (error)" but inspecting the server response to that AJAX request reveals a similar exception message:

    [MySqlException (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &#39;[childContentTypeId] as column1_0_0_, this_.[parentContentTypeId] as column2_0_0&#39; at line 1]
    MySql.Data.MySqlClient.MySqlStream.ReadPacket() +383
    MySql.Data.MySqlClient.NativeDriver.GetResult(Int32&amp; affectedRow, Int64&amp; insertedId) +116
    MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32&amp; affectedRows, Int64&amp; insertedId) +54
    MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) +145
    MySql.Data.MySqlClient.MySqlDataReader.NextResult() +1258
    MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) +2364
    MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +41
    System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() +12
    NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd) +347
    NHibernate.Loader.Loader.GetResultSet(IDbCommand st, Boolean autoDiscoverTypes, Boolean callable, RowSelection selection, ISessionImplementor session) +361
    NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) +425
    NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) +213
    NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) +174

    [GenericADOException: could not execute query
    [ SELECT this_.[childContentTypeId] as column1_0_0_, this_.[parentContentTypeId] as column2_0_0_ FROM cmsContentType2ContentType this_ WHERE this_.[parentContentTypeId] = ?p0 ]
    Positional parameters: #0&gt;1129
    [SQL: SELECT this_.[childContentTypeId] as column1_0_0_, this_.[parentContentTypeId] as column2_0_0_ FROM cmsContentType2ContentType this_ WHERE this_.[parentContentTypeId] = ?p0]]
    NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) +340
    NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters) +60
    NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes) +176
    NHibernate.Loader.Criteria.CriteriaLoader.List(ISessionImplementor session) +95
    NHibernate.Impl.SessionImpl.List(CriteriaImpl criteria, IList results) +649
    NHibernate.Impl.CriteriaImpl.List(IList results) +76
    NHibernate.Impl.CriteriaImpl.List() +113
    NHibernate.Criterion.QueryOver`1.List() +108
    NHibernate.Criterion.QueryOver`1.NHibernate.IQueryOver&lt;TRoot&gt;.List() +36
    Umbraco.Courier.Persistence.V6.NHibernate.Helpers.ContentTypeHelper.All(ItemIdentifier id, ISession session) in c:\Program Files (x86)\teamcity\buildAgent\work\650bafc4b83aa858\Core\Umbraco.Courier.Persistence.V6.NHibernate\Helpers\ContentTypeHelper.cs:107
    Umbraco.Courier.Persistence.V6.NHibernate.Persisters.DocumentyTypeItem.AvailableItems(ItemIdentifier itemId) in c:\Program Files (x86)\teamcity\buildAgent\work\650bafc4b83aa858\Core\Umbraco.Courier.Persistence.V6.NHibernate\Persisters\DocumentyType.cs:31
    Umbraco.Courier.Core.ItemCrud.AvailableItems() +94
    Umbraco.Courier.Core.ItemCrudProvider.AvailableItems() +194
    Umbraco.Courier.ItemProviders.DocumentTypeItemProvider.AvailableSystemItems() +56
    Umbraco.Courier.UI.Webservices.TreeData.ProcessRequest(HttpContext context) +615
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +341
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously) +69


    Our team is brand new to Umbraco and the deployment challenges that its unique architecture brings so we were very relieved to see that Courier support had been enabled for 6.x recently and we’d really appreciate some help with this problem so that we can ensure a licensed version of Courier is in place ready for the first round of site changes after launch.

    Many thanks,
    Chris

    PS: Just some background info: We’re launching this small site (www.wildphotos.org.uk) next week as a trial run of Umbraco and if it proves suitable for our needs we’ll be moving 3 other sites onto the system later this year (at least one of which is important enough to us to warrant a full Umbraco support package and I can’t currently see any way to make a production site in Umbraco without using Courier so verifying that the software works as described is an important long and short term goal for us). We’re a small charity so paying for (load balanced / clustered) Microsoft SQL server licenses is out of the question, making MySQL our only option.

    PPS: Sorry if this is the wrong place for trial support requests - I tried the email address stated inside Courier itself but it bounced (deli-support at umbraco.org)

Please Sign in or register to post replies

Write your reply to:

Draft