Thank you for the emailed export.
I'm running the docker container attached to my blob storage with your import for several hours now.
I don't see issues or data lose so far. I keep it running and time from time open the studio.
I run this command
docker run -p 5488:5488 -v c:\work\temp3\home\:/jsreport jsreport/jsreport:2.4.0-full
Where in my home\jsreport.config.json I have
"fs-store-azure-storage-persistence": {
"accountName": "jsrtest",
"accountKey": "xxx",
"container": "jsreport"
},
The rest is standard.
In the error you posted I see
019-04-23T04:59:58.046435476Z Unhandled rejection Error: connect ECONNREFUSED 52.239.177.36:443
Not sure what is the IP 52.239.177.36, don't you know it? I guess it will be azure blob storage. So maybe there were some temprary connection issues from the machine running jsreport. I've tried to simulate the same.
The app logs this error
Unhandled rejection Error: getaddrinfo EAI_AGAIN jsrtest.blob.core.windows.net:443
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)
However, it is not restarted like it seems it happened in your case. If I open the internet again the app normally works.
What I noticed is that if I keep the internet down for a long time it takes also a long time for app to load in the browser. This is because the compaction interval mentioned here is queing new and new compaction and this blocks the app after the internet is back on. We will fix this so the compaction is not queing when there is already one task.
Another thing which came from analyzing your error.
Error occured during reporter init StorageError: There is already a lease present.
The azure blob storage driver uses azure container lease to lock it and prevent concurrent access. This is maybe useless for you if you have just a single instance, you can disable it using
"fs-store-azure-storage-persistence": {
"accountName": "jsrtest",
"accountKey": "xxx",
"container": "jsreport",
"lock": {
"enabled": false
}
},
Based on the logs the app did wait like 50 seconds to get the lease. The default jsreport lease has no such duration. Normally the app would wait until the lease is relased. This looks like something else created the lease. Or maybe you have some custom config in fs-store-azure-storage-persistence.lock?
In every case the corruption shouldn't happen and I don't see how it could so far.
It would help me a lot if you would send me the next time the downloaded container from the azure, so I see what is wrong there.