Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The physical root path of this SFS tree is longer than the configured max base path length 90. #53

Closed
thuatnguyen123 opened this issue Sep 24, 2015 · 6 comments

Comments

@thuatnguyen123
Copy link

[InvalidOperationException: The physical root path of this SFS tree, D:\Projects\Sitecore\src\abcorp-site\abcorp.sitecore.abc\data\Unicorn\Default Configuration\Field types, is longer than the configured max base path length 90. If the tree contains any loopback paths, unexpected behavior may occur. You should increase the Serialization.SerializationFolderPathMaxLength setting to greater than 103 and perform a reserialization from a master content database.]
Rainbow.Storage.SerializationFileSystemTree.get_MaxRelativePathLength() +233
Rainbow.Storage.SerializationFileSystemTree.get_MaxItemNameLengthBeforeTruncation() +61
Rainbow.Storage.SerializationFileSystemTree.PrepareItemNameForFileSystem(String name) +58
System.Linq.WhereSelectArrayIterator2.MoveNext() +84 System.Linq.Buffer1..ctor(IEnumerable1 source) +176 System.Linq.Enumerable.ToArray(IEnumerable1 source) +77
Rainbow.Storage.SerializationFileSystemTree.GetPhysicalFilePathsForVirtualPath(String virtualPath) +224
Rainbow.Storage.SerializationFileSystemTree.GetItemsByPath(String globalPath) +87
Rainbow.Storage.SerializationFileSystemDataStore.GetByPath(String path, String database) +48
Unicorn.Data.ConfigurationDataStore.GetByPath(String path, String database) +28
Unicorn.Predicates.PredicateRootPathResolver.GetRootSerializedItems() +78
Unicorn.ControlPanel.ControlPanelUtility.HasAnySerializedItems(IConfiguration configuration) +36
System.Linq.Enumerable.All(IEnumerable1 source, Func2 predicate) +146
Unicorn.ControlPanel.d__0.MoveNext() +109
Unicorn.ControlPanel.UnicornControlPanelPipelineProcessor.ProcessRequest(HttpContext context) +473
Unicorn.ControlPanel.UnicornControlPanelPipelineProcessor.Process(HttpRequestArgs args) +74
(Object , Object[] ) +59
Sitecore.Pipelines.PipelineMethod.Invoke(Object[] parameters) +36
Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +241
Sitecore.Pipelines.CorePipeline.Run(String pipelineName, PipelineArgs args, String pipelineDomain, Boolean failIfNotExists) +158
Sitecore.Pipelines.CorePipeline.Run(String pipelineName, PipelineArgs args, String pipelineDomain) +64
Sitecore.Pipelines.CorePipeline.Run(String pipelineName, PipelineArgs args) +50
Sitecore.Nexus.Web.HttpModule.��(Object ��, EventArgs ��) +450
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +141
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69

I have problems as above, its releated to the length of path.
I changed :
- "Serialization.SerializationFolderPathMaxLength" from web.config.
- "Rainbow.SFS.SerializationFolderPathMaxLength" from Rainbow.config.
but everything still got the errors. Please help me !

Ver :
- Unicorn.3.0.0-rc4, Unicorn.Core.3.0.0-rc4
- Sitecore 8 Update 4

@kamsar
Copy link
Collaborator

kamsar commented Sep 24, 2015

That's weird, because I just dealt with that same thing yesterday.

The Rainbow.SFS.SerializationFolderPathMaxLength is what you're looking for (I'll make that clearer in the error message). Check /sitecore/admin/showconfig.aspx to make sure that your config change is active.

@kamsar
Copy link
Collaborator

kamsar commented Sep 24, 2015

Did you change it to 103 exactly or more than 103?

@thuatnguyen123
Copy link
Author

I changed to 103 and more than but still error.
My web.config is active.

Thank for your feedbacks
Thuat Nguyen

@kamsar
Copy link
Collaborator

kamsar commented Sep 24, 2015

Hi,

I just tried to replicate your configuration exactly with the same setup:

Unicorn configuration XML (overriding the base path to the one you provided):

<configuration name="Sample Configuration" description="This is an example of a description that you can attach to a configuration in Unicorn 3 to explain what it's for.">
    <targetDataStore type="Rainbow.Storage.SerializationFileSystemDataStore, Rainbow" physicalRootPath="D:\Projects\Sitecore\src\abcorp-site\abcorp.sitecore.abc\data\Unicorn\Default Configuration" useDataCache="false" singleInstance="true"/>
    <predicate type="Unicorn.Predicates.SerializationPresetPredicate, Unicorn" singleInstance="true">
        <include database="core" path="/sitecore/system/Field types"/>
    </predicate>
</configuration>

Rainbow.config:
<setting name="Rainbow.SFS.SerializationFolderPathMaxLength" value="90" />

This resulted in the error you received, as you'd expect:
image

So I altered my Rainbow.config:
<setting name="Rainbow.SFS.SerializationFolderPathMaxLength" value="103" />

It worked fine as soon as I did that, or values > 103:
image

If I look at it in /sitecore/admin/showconfig.aspx to see the merged config results, I see what's expected:
image

Are you using a build process where you deploy after a build to copy your configs? At this point I cannot reproduce your issue.

@thuatnguyen123
Copy link
Author

The steps I reduce the config :

  • Change the value's SerializationFolderPathMaxLength 90 t0 190
    untitled

  • Clean then Rebuild Solution.

  • Check my confign /showconfig.aspx. I saw that its normally and the values have changed.
    Other case I change the values' Web.config belong steps above.
    From : setting name="Serialization.SerializationFolderPathMaxLength" value="90" to value="190".
    Now I got the errors :

    Exception Details: System.InvalidOperationException: The MaxItemNameLengthBeforeTruncation setting (100) is too long given the SerializationFolderPathMaxLength. Reduce the max name length to at or below 10.
    Stack Trace: [InvalidOperationException: The MaxItemNameLengthBeforeTruncation setting (100) is too long given the SerializationFolderPathMaxLength. Reduce the max name length to at or below 10.]
    Rainbow.Storage.SerializationFileSystemTree.get_MaxItemNameLengthBeforeTruncation() +291
    Rainbow.Storage.SerializationFileSystemTree.PrepareItemNameForFileSystem(String name) +58
    System.Linq.WhereSelectArrayIterator2.MoveNext() +84 System.Linq.Buffer1..ctor(IEnumerable1 source) +176 System.Linq.Enumerable.ToArray(IEnumerable1 source) +77
    Rainbow.Storage.SerializationFileSystemTree.GetPhysicalFilePathsForVirtualPath(String virtualPath) +224
    Rainbow.Storage.SerializationFileSystemTree.GetItemsByPath(String globalPath) +87
    Rainbow.Storage.SerializationFileSystemDataStore.GetByPath(String path, String database) +48
    Unicorn.Data.ConfigurationDataStore.GetByPath(String path, String database) +28
    Unicorn.Predicates.PredicateRootPathResolver.GetRootSerializedItems() +78
    Unicorn.ControlPanel.ControlPanelUtility.HasAnySerializedItems(IConfiguration configuration) +36
    System.Linq.Enumerable.All(IEnumerable1 source, Func2 predicate) +146
    Unicorn.ControlPanel.d__0.MoveNext() +109
    Unicorn.ControlPanel.UnicornControlPanelPipelineProcessor.ProcessRequest(HttpContext context) +473
    Unicorn.ControlPanel.UnicornControlPanelPipelineProcessor.Process(HttpRequestArgs args) +74
    (Object , Object[] ) +59
    Sitecore.Pipelines.PipelineMethod.Invoke(Object[] parameters) +36
    Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +241
    Sitecore.Pipelines.CorePipeline.Run(String pipelineName, PipelineArgs args, String pipelineDomain, Boolean failIfNotExists) +158
    Sitecore.Pipelines.CorePipeline.Run(String pipelineName, PipelineArgs args, String pipelineDomain) +64
    Sitecore.Pipelines.CorePipeline.Run(String pipelineName, PipelineArgs args) +50
    Sitecore.Nexus.Web.HttpModule.��(Object ��, EventArgs ��) +450
    System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +141
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69

untitled1

If the Rainbow.SFS.MaxItemNameLengthBeforeTruncation change the default value 100 to more than. The error as below :

Exception Details: System.InvalidOperationException: The physical root path of this SFS tree, D:\Projects\Sitecore\src\abcorp-site\abcorp.sitecore.abc\data\Unicorn\Default Configuration\Core Settings, is longer than the configured max base path length 103. If the tree contains any loopback paths, unexpected behavior may occur. You should increase the Serialization.SerializationFolderPathMaxLength setting to greater than 105 and perform a reserialization from a master content database.

Continues with SerializationFolderPathMaxLength's value equal 105 and more than.

Exception Details: System.InvalidOperationException: The MaxItemNameLengthBeforeTruncation setting (100) is too long given the SerializationFolderPathMaxLength. Reduce the max name length to at or below 10.

Do you have any idea for this ?
Thank for your feedbacks
Thuat Nguyen

@thuatnguyen123
Copy link
Author

After I changed name "Default Configuration" to another name. Example : New Configuration. Same you above is Sample Configuration. I worked fine. I dont know why this.

Unicorn.Configs.Default.config :
configuration name="Default Configuration" description="Write something here about why this configuration exists and what it's for. Or remove the attribute; it's optional."

Thank you !
Thuat Nguyen

@kamsar kamsar closed this as completed Sep 25, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants