Version 4.9.0 Import Error
-
Hi, we have recently updated to 4.9.0 and we are now getting this error when attempting a full import objects.
Error: Timeout during waiting for file system, try it again later.
at Object.rejectItemsWithTimeout (/app/node_modules/@jsreport/jsreport-fs-store/lib/queue.js:52:23)
at Timeout._onTimeout (/app/node_modules/@jsreport/jsreport-fs-store/lib/transaction.js:76:11)
at listOnTimeout (node:internal/timers:588:17)
at process.processTimers (node:internal/timers:523:7)... Error: Error: Timeout during waiting for file system, try it again later.
at Object.rejectItemsWithTimeout (/app/node_modules/@jsreport/jsreport-fs-store/lib/queue.js:52:23)
at Timeout._onTimeout (/app/node_modules/@jsreport/jsreport-fs-store/lib/transaction.js:76:11)
at listOnTimeout (node:internal/timers:588:17)
at process.processTimers (node:internal/timers:523:7)...
at https://x20-reports-prod-au2.azurewebsites.net/studio/assets/client.aad5b26fb7f7c29c0340.js:2:372044
at https://x20-reports-prod-au2.azurewebsites.net/studio/assets/client.aad5b26fb7f7c29c0340.js:2:372113
at b.callback (https://x20-reports-prod-au2.azurewebsites.net/studio/assets/client.aad5b26fb7f7c29c0340.js:2:4565694)
at b.<anonymous> (https://x20-reports-prod-au2.azurewebsites.net/studio/assets/client.aad5b26fb7f7c29c0340.js:2:4563670)
at t.emit (https://x20-reports-prod-au2.azurewebsites.net/studio/assets/client.aad5b26fb7f7c29c0340.js:2:426013)
at t.onreadystatechange (https://x20-reports-prod-au2.azurewebsites.net/studio/assets/client.aad5b26fb7f7c29c0340.js:2:4567387)We have a custom docker image hosted in our container registry and served from an Azure app service.
-
How do you persist your templates? Is it to a azure file share? A disk? A blob storage?
Does this happen only for full import with many entities ? Does it happen also if you import something small?
-
It is blob storage.
And yes it works better if the import file is smaller - I cleaned out some unneeded test data and got the import file down to 8.3MB and it will update but the behaviour is not good.
If I upload the file and wait for the process to complete there will be a pop up like this:
But if I come back to that server in 2 hours - it will say that all of the files were updated 2 hours ago.
We were on 4.3 before and we just updated to 4.9. 4.3 did not have any upload issues like this, even when the import file was much bigger - around 20MB.
-
We have one test server and 5 production servers.
Deleting all of the files on the test server and importing them fresh seemed to help, and it does not timeout.
I don't want to do that on the production servers though, incase I am unable to upload them again. The production servers are the ones that will generate the timeout error but will usually update in an hour or so (most of the time, sometimes they don't).
-
Any chance you would be able to email me (share a private link to some kind of onedrive) what you have in the env where you import and the import file you are uploading? I would profile the operation to find out the bottleneck. (jan.blaha@jsreport.net)
At this moment, you should be able to prepare separate blob storage and when you are confident, switch the production env to it.
The problem with blob storage is that it is significantly slower to work with than a DB or file system. We need to perform many small operations, which are slow in total. This driver was implemented 10 years ago, because there were no other simple options. Nowadays, you can share a managed disk or Azure Files, which provides better performance in this case. This is just to clarify the poor performance on big imports with azure storage.