Random Exception occours in production environment
Hi there.
I've been using Umbraco for quite some time now. I've run into an issue that I've never encountered before. Here goes:
A website using Umbraco 7.5.9 can run just fine for up to 3 days, and will just crash all of a sudden. The exception is the following:
Exception information:
Exception type: InvalidOperationException
Exception message: Type 'Epiphany.SeoMetadata.SeoMetadataPropertyValueConverter' cannot be an IPropertyValueConverter for property 'seoData' of content type 'home' because type 'Epiphany.SeoMetadata.SeoMetadataPropertyValueConverter' has already been detected as a converter for that property, and only one converter can exist for a property.
at Umbraco.Core.Cache.HttpRequestCacheProvider.GetCacheItem(String cacheKey, Func`1 getCacheItem
If I remove the package in quesiton, It will just be another custom property converter it will complain about, until there are none left. Which wont work; because I need those packages on the website.
So how do I fix this, when it occurs? I simply overwrite the Project DLLs with an exact 1:1 copy of the DLLs, and the problem goes away, until the exception takes down the website once again 1-4 days later. I've tried updating Umbraco and Changing modelbuilder from Zbu to Umbraco Default. Nothing works. I havn't developed any Umbraco Packages myself, so it might be my ignorance to how this stuff works - but can anyone tell me where I should start looking, to try and fix this random error? Thanks a lot.
It seems there is something wrong with the loading of the property value converters.
You say that overwriting the dll's solves the problem. But this is probably because the site restarts then. I think touching the web.config will have the same effect.
Default settings all the way. Only one website and app pool pointing to the Umbraco Instance.
I have encountered the issue once on my devlopment environment building through visual studio. A restart didn't resolve the issue here neither. I had to do a clean/rebuild to make it work again. Didn't happen again since. But as I said, it happens every 1-4 days on the production environment.
Do you have any idea where I should look? Can it be anything other than the model builder?
Don't think it has anything to do with the models builder. Do you have something in your code that does something with PropertyValueConverters, maybe registering your own ones?
Also can you list all the packages that you have installed ?
Granted, I did take over this project from another developer, so I cannot say that I'm 100% certain of what he has done all the way. But I'm 99,9% sure there are no registrations of our own PropertyValueConverters.
However, trying to find all of the installed packages for you, I noticed that not all of them were on the installed-packages-list, in the Package manager in Umbraco. Among them were the Epiphany.SeoMetaData package in question. They were installed directly through NuGet, thereby bypassing the Umbraco Configuration of the package.
Can this have anything to say?
Maximum Worker Processes is already set to one.
I'm fairly certain the issue is not caused by the caching, since neither a deletion of the "TEMP" and "Cache" folders resolves the issue. Nither does a full re-publish of the entire site.
The only thing that resolves the issue, is if I replace the projects DLLs with a copy from the last visual studio publish.
When the problem occurred, did you compare the DLL's with the ones from the last visual studio publish?
When the conflicting situation happens, you might try to replace the DLL's one by one to see which one (temporarily) solves the problem, just to find out which DLL is (directly or indirectly) responsible for the caused problems.
You could also try it the other way around ... copy the DLL's from the production server to your local machine to see if it still runs locally.
I tried removing all custom property editors from the "home" document type, to see if that would resolve the issue. I didn't. It simply fails on the built in TextString:
Exception information:
Exception type: InvalidOperationException
Exception message: Type 'Umbraco.Web.PropertyEditors.ValueConverters.TextStringValueConverter' cannot be an IPropertyValueConverter for property 'metaDescription' of content type 'home' because type 'Umbraco.Web.PropertyEditors.ValueConverters.TextStringValueConverter' has already been detected as a converter for that property, and only one converter can exist for a property.. This usually indicates that the content cache is corrupt; the content cache has been rebuilt in an attempt to self-fix the issue.
at Umbraco.Core.Cache.HttpRequestCacheProvider.GetCacheItem(String cacheKey, Func`1 getCacheItem)
The issue is resolved when I replace my Umbraco Website DLL with a copy of the already deployed DLL. Any takers?
Not sure if this is same exception, but after upgrade a website from 7.5 tot 7.7 I'm getting this exception on production:
Sequence contains more than one matching element. This usually indicates that the content cache is corrupt; the content cache has been rebuilt in an attempt to self-fix the issue.
I don't have this exception on acceptance. Anyone had this error before?
Yes, I did have this recently on a site where I upgraded RJP Multi Url Picker. The old version defined its property editor in the package.manifest, whereas the updated version does this in the DLL using attributes.
When I deployed this to the live site I forgot remove the package.manifest so it was trying to 'add' two property editors with the same ID. As soon as I removed the old one it worked fine.
Not sure if it's the Multi Url Picker in your case, but it might be something else that has been updated where there is a duplicate property editor being added?
Could even be Nested Content since that was added into core in 7.7?
Hi Tom. Didn't get a notification so I didn't see your answer before.
I'm not sure what it was, but I couldn't reproduce the issue local or on the acceptance server with the same db. Eventually we moved to another web app in Azure and we didn't get the error there.
The package.manifest could actually be related. Maybe it was still on live site after the upgrade. The error also happend when I tried to open the Multi Url Picker datatype.
Random Exception occours in production environment
Hi there.
I've been using Umbraco for quite some time now. I've run into an issue that I've never encountered before. Here goes:
A website using Umbraco 7.5.9 can run just fine for up to 3 days, and will just crash all of a sudden. The exception is the following:
If I remove the package in quesiton, It will just be another custom property converter it will complain about, until there are none left. Which wont work; because I need those packages on the website.
So how do I fix this, when it occurs? I simply overwrite the Project DLLs with an exact 1:1 copy of the DLLs, and the problem goes away, until the exception takes down the website once again 1-4 days later. I've tried updating Umbraco and Changing modelbuilder from Zbu to Umbraco Default. Nothing works. I havn't developed any Umbraco Packages myself, so it might be my ignorance to how this stuff works - but can anyone tell me where I should start looking, to try and fix this random error? Thanks a lot.
Hi Michael,
It seems there is something wrong with the loading of the property value converters.
You say that overwriting the dll's solves the problem. But this is probably because the site restarts then. I think touching the web.config will have the same effect.
Can you tell a bit more about your server setup ?
Dave
Hi Dave. Restarting the server and recycling the app pool (oddly enough), doesn't affect the problem. Only overwriting the DLL's solves the issue.
This is why I originally thought it must have something to do with the model builder.
What info about my server setup do you want specifically?
Hi Michael,
Thinks like app pool settings. How many IIS websites do you have pointing to the same Umbraco instance (seen this in the past and this causes issues)
Dave
Hi Dave,
Default settings all the way. Only one website and app pool pointing to the Umbraco Instance.
I have encountered the issue once on my devlopment environment building through visual studio. A restart didn't resolve the issue here neither. I had to do a clean/rebuild to make it work again. Didn't happen again since. But as I said, it happens every 1-4 days on the production environment.
Do you have any idea where I should look? Can it be anything other than the model builder?
Hi Michael,
Don't think it has anything to do with the models builder. Do you have something in your code that does something with PropertyValueConverters, maybe registering your own ones?
Also can you list all the packages that you have installed ?
Dave
Granted, I did take over this project from another developer, so I cannot say that I'm 100% certain of what he has done all the way. But I'm 99,9% sure there are no registrations of our own PropertyValueConverters.
However, trying to find all of the installed packages for you, I noticed that not all of them were on the installed-packages-list, in the Package manager in Umbraco. Among them were the Epiphany.SeoMetaData package in question. They were installed directly through NuGet, thereby bypassing the Umbraco Configuration of the package. Can this have anything to say?
The complete list of packages are:
At the moment I'm out of ideas.
Must be something that is messing up the resolving of PropertyValueConvertors.
Dave
So far it looks like a caching issue ...
Just to be sure: Can you check if your Application Pool has Maximum Worker Processes set to 1?
Is it an option for you to republish the website (resetting the cache)?
Hi Micha.
Maximum Worker Processes is already set to one. I'm fairly certain the issue is not caused by the caching, since neither a deletion of the "TEMP" and "Cache" folders resolves the issue. Nither does a full re-publish of the entire site.
The only thing that resolves the issue, is if I replace the projects DLLs with a copy from the last visual studio publish.
When the problem occurred, did you compare the DLL's with the ones from the last visual studio publish?
When the conflicting situation happens, you might try to replace the DLL's one by one to see which one (temporarily) solves the problem, just to find out which DLL is (directly or indirectly) responsible for the caused problems.
You could also try it the other way around ... copy the DLL's from the production server to your local machine to see if it still runs locally.
UPDATE:
I tried removing all custom property editors from the "home" document type, to see if that would resolve the issue. I didn't. It simply fails on the built in TextString:
The issue is resolved when I replace my Umbraco Website DLL with a copy of the already deployed DLL. Any takers?
Hello,
Not sure if this is same exception, but after upgrade a website from 7.5 tot 7.7 I'm getting this exception on production:
I don't have this exception on acceptance. Anyone had this error before?
Jeroen
Hi Jeroen,
Yes, I did have this recently on a site where I upgraded RJP Multi Url Picker. The old version defined its property editor in the
package.manifest
, whereas the updated version does this in the DLL using attributes.When I deployed this to the live site I forgot remove the
package.manifest
so it was trying to 'add' two property editors with the same ID. As soon as I removed the old one it worked fine.Not sure if it's the Multi Url Picker in your case, but it might be something else that has been updated where there is a duplicate property editor being added?
Could even be Nested Content since that was added into core in 7.7?
Hi Tom. Didn't get a notification so I didn't see your answer before.
I'm not sure what it was, but I couldn't reproduce the issue local or on the acceptance server with the same db. Eventually we moved to another web app in Azure and we didn't get the error there.
The package.manifest could actually be related. Maybe it was still on live site after the upgrade. The error also happend when I tried to open the Multi Url Picker datatype.
Jeroen
Just had the same error again on another project. After deleting the Multi Url Picker package.manifest file it started working again. Thanks Tom!
Jeroen
is working on a reply...