-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Database corruption caused by power loss #3159
Comments
Hello, I've experienced similar behaviour also with version 2.0.20. |
@marcinstrzelczyk did you find a solution/fix? |
@bartoszsurowiec nope |
One of the general problems in windows is the absence of a real atomic and posix compliant file rename. In general Mosquitto broker has introduced an extension of the plugin API on the development branch to allow persistence based on a plugin. And added a sqlite based persistence plugin. With the next major release it will be possible to replace the snapshot based blocking persistence by a more continuous persistence making use of a SQLite DB. |
When is the next major release planned? |
Hello,
I have mosquitto v2.0.18 running on Windows 10 as a service. Few days ago I experienced sudden power loss on my computer and then mosquitto failed to start with
errors in log file. Most likely mosquitto was trying to update the database file when the power loss happened, but I'm not 100% sure.
The
mosquitto.db
file exists and contains only NULLs. There is nomosquitto.db.new
file, which I saw being mentioned in other issues.This issue is similar to #189, I looked at PR for that issue and the solution was to add
fflush(db_fptr);
before closing the file (https://github.com/eclipse-mosquitto/mosquitto/pull/206/files), but it was done inside#ifndef WIN32
directive, so it was not applied to Windows version. I don't know if thatfflush
call could fix problems on Windows as well, but maybe it's worth looking at.The text was updated successfully, but these errors were encountered: