Jumoo / uSync.Complete.Issues

Public Issue tracker and roadmap for uSync.Complete
https://jumoo.co.uk/usync/complete/
2 stars 1 forks source link

Cannot find folder error when uploading and extracting a SyncPack #124

Closed jimrowetpa closed 3 years ago

jimrowetpa commented 3 years ago

Describe the bug when uploading a SyncPack it passes the validate step but freezes on the Items step. The following error is reported in the log. I have checked and the folder specified is present and has got folders and files in it - from the SyncPack.

Might be related to the fix for #117 released in v8.10.1 ?

System.IO.DirectoryNotFoundException: Cannot find folder [INSTALL-FOLDER]\App_Data\TEMP\uSync\exports\2f46d294-e353-4c69-85c0-ab6741e84230\r\n at uSync.Expansions.Core.Services.SyncPackService.ReportChanges(SyncPackRequest request)\r\n at uSync.Exporter.Services.SyncExporterService.Report(Guid id, SyncPackRequest request)\r\n at uSync.Exporter.Controllers.uSyncNuExporterApiController.ProcessExporterSteps(IList1 steps, ExporterRequest request)\r\n at lambda_method(Closure , Object , Object[] )\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_2.<GetExecutor>b__2(Object instance, Object[] methodParameters)\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ApiControllerActionInvoker.d1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.d6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Web.Http.Filters.ActionFilterAttribute.d6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.d5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.d6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Web.Http.Filters.ActionFilterAttribute.d6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.d5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.d6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Web.Http.Filters.ActionFilterAttribute.d6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.d5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.d6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Web.Http.Filters.ActionFilterAttribute.d6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.d5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ActionFilterResult.d5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.AuthorizationFilterAttribute.d3.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.AuthorizationFilterAttribute.d3.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.AuthorizationFilterAttribute.d3.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.AuthorizationFilterAttribute.d3.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ExceptionFilterResult.d6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Web.Http.Controllers.ExceptionFilterResult.d6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__15.MoveNext()

Version (please complete the following information):

To Reproduce Steps to reproduce the behavior:

  1. Create a SyncPack
  2. Navigate to settings/uSync8/dashboard/exporter
  3. Click import sync pack
  4. Upload file
  5. Popup window appears, validate is ticked. Items is green. Nothing further happens.

Expected behavior SyncPack should be imported.

KevinJump commented 3 years ago

Hi - if possible can you send me a copy of the sync pack you are uploading (kevin@jumoo.co.uk). it might be something we are not picking up.

also if you can confirm you are not on a load balanced setup (on load balanced setup the servers can switch between requests - so the folder goes 'missing') - if you are on a load balanced setup usync should tell you on the main dashboard

jimrowetpa commented 3 years ago

Hi Kevin, thanks for looking at this.

I've sent the sync pack over. We're not load balanced, it is two local copies.

The folder is being created where I would expect it (at the location in the stack trace). Inside that folder there is a uSync folder, and that then contains Content and Dictionary folders.

KevinJump commented 3 years ago

Hi,

I think this is because you might have the content and dictionary handlers disabled in the uSync8.config file (and we should show a way better error!)

you might understandably have turned content, media etc off on the default handlers if you dont want them syncing, but by default exporter uses the default handlers to to imports, and the code in this case doesn't find the handlers so isn't looking for the right folders so it complains (badly).

fix:

you can tell exporter to use its own handller setup so you don't have to turn content back on in the default setup.

in the uSync8.config file

add a new Handlers group to the HandlerSets setup

<Handlers Name="exporter">
    <Handler Alias="dataTypeHandler" Enabled="true" />
    <Handler Alias="languageHandler" Enabled="true" />
    <Handler Alias="macroHandler" Enabled="true" />
    <Handler Alias="mediaTypeHandler" Enabled="true" />
    <Handler Alias="memberTypeHandler" Enabled="false" />
    <Handler Alias="templateHandler" Enabled="true" />
    <Handler Alias="contentTypeHandler" Enabled="true" />
    <Handler Alias="contentHandler" Enabled="true" />
    <Handler Alias="contentTemplateHandler" Enabled="true" />
    <Handler Alias="dictionaryHandler" Enabled="true" />
    <Handler Alias="domainHandler" Enabled="true" />
    <Handler Alias="mediaHandler" Enabled="true" />
    <Handler Alias="memberGroupHandler" Enabled="true" />
    <Handler Alias="memberHandler" Enabled="true" />
    <Handler Alias="publicAccessHandler" Enabled="true" />
    <Handler Alias="userGroupHandler" Enabled="true" />
    <Handler Alias="userHandler" Enabled="true" />
    <Handler Alias="mediaFileHandler" Enabled="true" />
</Handlers>

Add the exporter settings to the default 'backoffice` node

<Exporter>
    <HandlerSet>exporter</HandlerSet>
</Exporter>

you will then need to restart the site (settings are not reloaded on a running site)

hopefully that will fix it , and we will look at making this error more intuitive. (in v9 the exporter handler thing is a default - as it would be breaking change to add it to v8)

jimrowetpa commented 3 years ago

Ah that makes sense... yes I'm running two copies of our live site to test migrating structure one way and content the other and have different handler config in each.

I have added the exporter handlers set and can confirm it all works as expected. do you want me to add this to the github bug report, or are you happy for me to just close it?

On Wed, 14 Jul 2021 at 10:25, Kevin Jump @.***> wrote:

Hi,

I think this is because you might have the content and dictionary handlers disabled in the uSync8.config file (and we should show a way better error!)

you might understandably have turned content, media etc off on the default handlers if you dont want them syncing, but by default exporter uses the default handlers to to imports, and the code in this case doesn't find the handlers so isn't looking for the right folders so it complains (badly).

fix:

you can tell exporter to use its own handller setup so you don't have to turn content back on in the default setup.

in the uSync8.config file

add a new Handlers group to the HandlerSets setup

Add the exporter settings to the default 'backoffice` node

Exporter

you will then need to restart the site (settings are not reloaded on a running site)

hopefully that will fix it , and we will look at making this error more intuitive. (in v9 the exporter handler thing is a default - as it would be breaking change to add it to v8)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Jumoo/uSync.Complete.Issues/issues/124#issuecomment-879740390, or unsubscribe https://github.com/notifications/unsubscribe-auth/AT7QSXTIXLYIQOZH3GV7IW3TXVJ2JANCNFSM5AJCZDZA .

KevinJump commented 3 years ago

hi, just leave this issue open, we will use it to track the change in the next release.

jimrowetpa commented 3 years ago

Ok, thanks for your help!

On Wed, 14 Jul 2021 at 10:57, Kevin Jump @.***> wrote:

hi, just leave this issue open, we will use it to track the change in the next release.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Jumoo/uSync.Complete.Issues/issues/124#issuecomment-879759782, or unsubscribe https://github.com/notifications/unsubscribe-auth/AT7QSXTLFMUUG43HIYMEZM3TXVNQ5ANCNFSM5AJCZDZA .

KevinJump commented 3 years ago

update to errors in 8.10.3 release.