Jumoo / uSync.Complete.Issues

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

Timeout when pushing large amount of content #87

Closed ykkp2000 closed 3 years ago

ykkp2000 commented 3 years ago

Hi,

I've upgraded to latest 8.9.1, and trying to push a node that has about 500 descendents, and getting this error: Error while processing Push - (Action: import/5/2/) - https://v8-/umbraco/uSyncReceive/uSyncReceiveApi/ImportPackSecondPass timed out to after 100009ms

This looks like it could the standard HttpClient timeout, am I missing a config somewhere? Or is it a bug? Has anyone else encountered this?

KevinJump commented 3 years ago

Hi,

It is a standard timeout but there is a chance. it timed out because the process crashed on the target site.

We are trying to workout the best way to help debug this issue. when this happens is the UI still updating just before it times out (e.g are the names of the items being updated changing, or does it look 'frozen'?)

also are their any errors on the target server - there might be an error in the logs on the server you are pushing to, that might indicate what is going on.

KevinJump commented 3 years ago

Hi,

one mitigation that might work is to change the number of items that are processed at any one time.

within the uSync.Publisher.Config file. you can set a pageSize e.g

<uSyncPublisher incomingEnabled="true" outgoingEnabled="true">
    <pageSize>10</pageSize>
          ... rest of the file
</uSyncPublisher>

(you will need to restart the umbraco site after this change).

This should change the amount of items sent in each request (the default is 50) so if you have a site with very long publish times this might help.

ykkp2000 commented 3 years ago

Hi,

Thanks for your thoughts, I'm a bit baffled as to what's going on the destination server, looking at the logs, the new content seems to be triggering a job within the SeoChecker plugin, that's erroring when validating html. This is then causing a sql timeout, which in turn is ruining my day! Will need to investigate further.

drpeck commented 2 years ago

We're running uSync behind Cloudfront which has a default timeout of 30s and a maximum of 60s. We're going to request an increase to the maximum, but we can't know for sure that that will always be sufficient.

As an idea; could a future iteration return 202 if the process exceeds 20s (for example), upon which the JS polls awaiting completion confirmation?

I'll try the page size thing too.

Thanks for your great work.