-
Notifications
You must be signed in to change notification settings - Fork 28
o.e.s.storage.types.StorageChannelTask : Error occurred in storage channel#0org.eclipse.store.storage.exceptions.StorageExceptionIoWriting: Physical length 3047424 of current head file 146 is not equal its expected length of 3047612 #95
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
Comments
I tried with channel size 1, I have the same issue. |
I got a similar error and once it is on the collected data is lost forever. Any idea what causes this? I took down a copy of the data from a live system using |
Hello, |
@mstahv: |
@hg-ms This issue occurs to me all the time. I have stopped using eclipse store for this reason. The problem occurs on my laptop and on EC2 provisionned on AWS. Do you see any issue with the code I have provided? At least from a conceptual point of view? Moreover, it gives the feeling that eclipse-store is either super fragile or that it can be easily used in a wrong way. Maybe more documentation and snippets about how to use it properly would be useful? Reading the documentation I didn't find many example. Would be nice to have more use cases showcased. |
Yeah, I guess so, at least for getting functional backup. In my case it is the live server that got this issue. Another idea that might have affected this: I'm storing the data on a directory in the server and then that is mounted to the Docker container running the actual app. There might be two apps/containers accesing the same files during the update as there is "zero downtime update" configure for the system. If it is this that cause my issue, I need a different strategy (this has worked fine with RDBMSs). I wonder still if the default is right here to throw the exeption, instead of logging some error and overriding? At least to some backup file. My case (where I'm storing weather station data for my hobby/learning project) not a biggie, but in some production system I might have lost a full day of entries (althogh store in server memory just fine), if EclipseStore would have overridden I assume would have only lost just one entry 🤷♂️ |
@mstahv: @ghilainm: |
It just happened to me on a live server that had been running without issues for a month. To fix the problem, I tried to restart the application but it refused to start. I had to completely wipe the storage to run it again. |
As @ghilainm mentioned earlier, this kind of bugs hinders the whole purpose of using a persistent storage solution. One single write error means you have lost all your data forever. I wasn't able to find any recovery/repair tool or instructions in the official documentation nor elsewhere: this makes me wonder if file storage corruption was never considered a possibility in the design of eclipsestore (hint: it does happen in real life). |
Fixed in v 1.4.0. Please reopen if the error occurs again. |
Environment Details
EclipseStore Version: 1.0.0
JDK version: /eclipse_adoptium-21-amd64-linux/jdk-21.0.1+12
OS:
os.arch = amd64
os.name = Linux
os.version = 6.1.61-85.141.amzn2023.x86_64
Used frameworks: None.
Describe the bug
Exception occur while storing data.
o.e.s.storage.types.StorageChannelTask : Error occurred in storage channel#0org.eclipse.store.storage.exceptions.StorageExceptionIoWriting: Physical length 3047424 of current head file 146 is not equal its expected length of 3047612
And another one with the same use case.
To Reproduce
Here are relevant snippets.
Expected behavior
No Error.
The text was updated successfully, but these errors were encountered: