Copied to clipboard

Flag this post as spam?

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


  • Markus The 10 posts 31 karma points
    Sep 12, 2013 @ 14:36
    Markus The
    0

    "A Mapper could not be resolved based on the passed in Type" on 6.1.4 in a web farm

    When running Umbraco 6.1.4 on a three server web farm, I get the following exception on two of the servers every once in a while (typically about once per two days):

    Exception information:
        Exception type: Exception
        Exception message: Invalid Type: A Mapper could not be resolved based on the passed in Type

    History:

    I initially set up the web farm using Umbraco 6.0.0. umbracoSettings.config reads:

    <distributedCall enable="true">
      <user>0</user>
      <servers>
        <server forceProtocol="http">server1</server>
        <server forceProtocol="http">server2</server>
        <server forceProtocol="http">server3</server>
      </servers>
    </distributedCall>

    All servers are members of the same domain and they're hosting umbraco from a single shared file location.

    The mystifying bit is that this setup worked just fine for months, until I upgraded 6.0.0 to 6.1.2. From then on, I had these intermittent crashes. The cache seems to be the problem, because pages would appear unpublished or unpublishable when edited and viewed from the backend. Repeatedly republishing the entire site and/or recycling the app pool on the servers helped. It turns out I can 'solve' the problem by just recycling the app pool on a single server, the one that first starts reporting the error above.

    I hoped that upgrading to 6.1.4 would help, but it hasn't. When I went back to 6.0.0 the problem went away again, only to reappear when upgrading to 6.1.4

    Is anybody aware of any information that might help me tackle the problem? I would sure appreciate it!

    Here's part of the call stack:

        Stack trace:    at Umbraco.Core.Persistence.Mappers.MappingResolver.<>c__DisplayClassa.<ResolveMapperByType>b__9(Type type1)
       at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
       at Umbraco.Core.Persistence.Querying.ModelToSqlExpressionHelper`1..ctor()
       at Umbraco.Core.Services.ContentTypeService.GetContentType(String alias)

     

  • philw 99 posts 434 karma points
    Sep 14, 2013 @ 12:58
    philw
    0

    Same issue here, it's almost killing me completely but it goes away and then comes back, so you can do stuff in between. I have multiple sites on Rackspace's farm, and the other ones are ok, but maybe I did not upgrade them. The problem is in 6.1.4 - will try 6.1.5 to see if it fixes it, but it's almost unusable.

     

    Switching repeatedly between the "content" and "settings" views seems to make it go away for a while - once you can get past it, then for a few minutes at least it seems ok.

  • philw 99 posts 434 karma points
    Sep 14, 2013 @ 13:59
    philw
    0

    I upgraded from 6.1.4 to 6.1.5 and so far I've not seen this error, perhaps there's a fix in that. Oops, no, it's back., 6.1.5 suffers just the same. Damn.

    I have other installs on 6.0.6, so this is an issue between those somewhere.


    Is it possible to downgrade, without reverting to a backed up copy of the database too? 

     

    Here's my 6.05 crash dump. This is happening pretty much everwhere now:

    Server Error in '/' Application.


    Invalid Type: A Mapper could not be resolved based on the passed in Type

    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: System.Exception: Invalid Type: A Mapper could not be resolved based on the passed in Type

    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: 

    [Exception: Invalid Type: A Mapper could not be resolved based on the passed in Type]
       Umbraco.Core.Persistence.Mappers.<>c__DisplayClassa.b__9(Type type1) +92
       System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) +72
       Umbraco.Core.Persistence.Mappers.MappingResolver.ResolveMapperByType(Type type) +83
       Umbraco.Core.Persistence.Querying.ModelToSqlExpressionHelper`1..ctor() +69
       Umbraco.Core.Persistence.Querying.Query`1..ctor() +44
       Umbraco.Core.Services.ContentTypeService.GetContentTypeChildren(Int32 id) +89
       umbraco.loadNodeTypes.Render(XmlTree& tree) +67
       umbraco.presentation.webservices.TreeDataService.LoadTree(TreeRequestParams treeParams) +76
       umbraco.presentation.webservices.TreeDataService.GetXmlTree() +156
       umbraco.presentation.webservices.TreeDataService.ProcessRequest(HttpContext context) +123
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +341
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
  • Markus The 10 posts 31 karma points
    Sep 15, 2013 @ 16:40
    Markus The
    0

    Bummer. I found a discrepancy between the App-pools on one of the servers (it was running in 32-bit mode while the others were running in 64-bit mode), and I had hopes that might cure the problem but it didn't. I also disabled Examine end took one of the servers (the testing one) out to reduce the problem to two servvers, but to no avail: one of the YSOD'd this morning.

    Woukd anybody have any idea why 6.0 does not exhitbit this problem, while 6.1.4+ do?

  • philw 99 posts 434 karma points
    Sep 18, 2013 @ 09:47
    philw
    0

    Mine, the Rackspace cluster stuff is all identical, so it's definitely not related to configuration of an individual node. Definitely it was introduced in one of these recent releases. Fortunately I didn't upgrade any of my other systems and they are still clustered and still just fine. Plus the only thing I changed here was to upgrade Umbraco.

    Presumably it's one of the changes listed here which causes this:

    http://our.umbraco.org/contribute/releases/614/

    Quite a few of those talk about "type", but without more context it's hard to know what this all is doing when it dies.

    I'm assuming it is somehow cluster related as we have 100% clusterish systems here, and no reports of trouble elsewhere.

  • philw 99 posts 434 karma points
    Sep 19, 2013 @ 14:57
    philw
    0

    I created a defect report for this:

    http://issues.umbraco.org/issue/U4-2897

  • Markus The 10 posts 31 karma points
    Sep 19, 2013 @ 15:46
    Markus The
    0

    Actually, I'm quite sure it was introduced in 6.1.2. I upgraded from 6.0.0 to 6.1.2 and the problem manifested itself. You've not had the problem on 6.0.6, so it must have been introduced beween 6.0.7 (if there's such a version) and 6.1.2 (inclusive)

  • philw 99 posts 434 karma points
    Sep 19, 2013 @ 15:51
    philw
    0

    Agreed... so it's somewhere in the change history for 6.07, 6.1.1 and 6.1.2.... I'll look through those and see if there's anything likely...

    http://our.umbraco.org/contribute/releases

  • philw 99 posts 434 karma points
    Sep 22, 2013 @ 18:38
    philw
    0

    I'm not 100% sure on this, but I have fixed it for me...

    I noticed that they changed the capitalization of some folder names between those releases. So UserControls replaced userControls, and a few other paths changed in similar ways. Rackspace (and others) respect capitalization, but some the umBraCo guys don't. If you follow their upgrade instructions, you copy their new stuff over your old stuff.... which is going to cause all sorts of **** in these circumstances.

    My solution:

    1. Take a clean 6.1.5 distrubution.
    2. Copy into it all the bits you need from the old install (so sCripts, cSS, XsLT, UserCoNtrOls, mAstERpages, mediA etc)
    3. Merge changes from web.config. Point the connection string at the same (already upgraded) 6.1.5 database, and set the config up so it doesn't try to re-upgrade the database, which is already upgraded.
    4. Test locally, deploy to Rackspace Cloud. Either call Rackspace and get them to recycle the app pool, or bounce it, then wait 20 minutes until it's recycled. As soon as I had the new clean build up there it was hunky-dory.

     Your mileage may of course vary.

  • Markus The 10 posts 31 karma points
    Sep 24, 2013 @ 10:20
    Markus The
    0

    I'm back on 6.0.0 for the time being, but I'll give it a try and post the results here.

  • philw 99 posts 434 karma points
    Sep 24, 2013 @ 10:28
    philw
    0

    Mine broke again, so it was "fixed" for a while, and now it's broken again.

    Did you downgrade from 6.1.something to 6.0.0? If so, I'll be very interested to know if it works, as I will have to downgrade this 6.1.5 system, but I assumed it would probably fail as the Database was presumably upgraded...

  • Markus The 10 posts 31 karma points
    Sep 24, 2013 @ 10:34
    Markus The
    0

    Blweh.

    I didn't actually downgrade - I just use the 6.1.5 DB in Umbraco 6.0.0. (Basically, I pointed IIS back to the original 6.0.0 directory a few days after the upgrade).

    I don't do anything complicated like members, but editing, macro's, templates etc. 'just work'.

     

  • philw 99 posts 434 karma points
    Sep 24, 2013 @ 10:40
    philw
    0

    Great news - that sounds promising... I also don't do anything complicated inside of Umbraco itself - I nest my clever stuff in an embedded application and a few classes used by my master pages. So as that particular database is Umbraco's, and used only by Umbraco... your experience suggests I should be fine with the old version.

    I have my other systems at 6.0.6, so I will reinstall a 6.0.6 alongside this 6.1.5 broken stuff, back the database up, then cut back over and give it a whirl. It can hardly be worse than this.

    Assuming that fixes it then I'll reopen that defect report, as something between these releases killed web-farm Umbraco. There are a few changes in the list for the possible breaking releases which could be causing this, but I don't know enough about Umbraco internals to know. If they don't confirm a kill and fix it, then I guess I'll have to try to work out what it is. I don't know the internals of this at all, but there are only about 50 candidate changes and I know for sure it's one of those.

  • Markus The 10 posts 31 karma points
    Sep 24, 2013 @ 10:43
    Markus The
    0

    Good luck!

  • philw 99 posts 434 karma points
    Sep 24, 2013 @ 15:27
    philw
    0

    I just did that downgrade, tested it locally and deployed to this live cluster. It looks ok. I took a clean 6.0.6 and copied into it my own bits, merged the configs, and then turned off the upgrade nag.

    It's looking 100% solid accessing from multiple machines, but I want to leave it a day or so to be sure, as it has a habit of working when it first starts up. If it's stable still tomorrow and no one's had the editing problems, then I think that's pretty much proof that the issue is between those two releases.

    At that point I'll re-open the defect report and maybe try to help them track it down. It can't be all that subtle.

    I can't really think how you could break it like this, as for a single user on Rackspace the load balancing is "sticky", so you can't tell you're not on one machine without a fair bit of effort.

  • philw 99 posts 434 karma points
    Sep 25, 2013 @ 09:36
    philw
    0

    Ok, that's looking like a wrap. 100% solid across different IP address accesses for 18 hours now. Before it would crash after a few minutes or even immediately. Now I'm back to having a usable system.

    So to recap:

    1. When running on clusters including but not limited to Rackspace Cloud, one of the versions of Umbraco between 6.0.7, 6.1.1 and 6.1.2 causes system crashes with "A Mapper could not be resolved based on the passed in Type". These generally happen immediately but are intermittent - clicking other "tabs" repeatedly and "bouncing" the cluster sometimes appears to clear the problem. When this error occurs, other errors tend to follow and the system you're on is unusable: you can't "open" pages, and even if you have one open, you cannot edit it once this starts to break.
       
    2. The "fix" is to downgrade to 6.0.6 or earlier. As we're not sure precisely which of the versions above contains the defective code, it may be that 6.0.7 or 6.1.1 are also ok. The good news is that the downgrade appears safe, at least for those of us not using complicated structures (just custom master pages, xslt, some code and some user controls). There's obviously some risk here.

    3. We believe that the defect was introduced in one of the versions listed as 6.0.6 is the last proven good system, and 6.1.2 is the first known broken one. If time permits, then tests of 6.0.7 and 6.1.1 on a test cluster would help isolate which change caused the break.
    I'll add this to the defect report so at least it's known. Then I have some catching up to do as this cost me a ton of time, but once that's cleared, if no one has evidence to pin this down to a release, then I guess my best bet is to build test 6.0.7 and 6.1.1 clustered systems, so I can try to work out which set of changes contains this defect. Then it's going to be bench checking the likely changes...
  • Zakhar 171 posts 397 karma points
    Oct 22, 2014 @ 19:16
    Zakhar
    0

    I'm not sure why this topic is in "Umbraco as a service" forum, I just came across this issue on my staging server.

    I get Invalid Type: A Mapper could not be resolved based on the passed in Type when I try to access any page of my website.

    At the same time I'm getting Error executing child request for umbraco.aspx. when I try to access /umbraco.

    It appeared after I tried to enforce https and added this line of code to Global.asax: GlobalFilters.Filters.Add(new RequireHttpsAttribute()); (I obviously tried to remove this line, but it didn't help, the site is simply broken now)

    I'm on Umbraco 6.1.6, MS 2012 and SQLExpress 2012.

    It's October 2014 and I certainly don't want to downgrade to 6.0.6

    What I've tried so far:

    • Checked permissions
    • restarted the site in IIS
    • recycled app pool
    • reset IIS
    • Restarted server
    • deleted umbraco.config
    • cleared /app_data/TEMP

    Any help will be greatly appreciated.

    Thanks, Zakhar

Please Sign in or register to post replies

Write your reply to:

Draft