EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Automatic check and repair?

Also by EldoS: CallbackProcess
A component to control process creation and termination in Windows and .NET applications.
Posted: 02/22/2008 03:47:34
by Kenny Clement (Priority Standard support level)
Joined: 09/03/2007
Posts: 61

A few days ago, one of our customers was working on a SolFS storage, with about 10 folders, and lots of small files on it.
She was working on a word document (let's call it 'cdoc').
All of a sudden, her word shut down.
When she looked at the solfs storage, of the +/- 10 folders, there was only one left, everything else on the storage was gone.

A tool using this storage (unison), complained that the disk structure was corrupted.
==> corrupted storage.

After a pc reboot, the storage was magically fixed.
The storage was mounted, and all the folders were back, except for 'cdoc'.
unison no longer complained about corrupted disk structures.

SolFS seemed to have repaired itself after the reboot.
Is there some kind of automatic check and repair function included in SolFS?
Or is this really unexplainable magic?

If there is an automatic check and repair, when will it run?
Because we've had some corrupt images here. (storage.isCorrupt returns true, but we get no solfs errors and everything will just mount, but unison will complain about corrupted disk structures.)
Posted: 02/22/2008 04:06:01
by Eugene Mayevski (EldoS Corp.)

This is not magic, but effect of journalling - the transactions were rolled back.
Alex will explain in more details.

Sincerely yours
Eugene Mayevski
Posted: 02/22/2008 04:42:04
by Kenny Clement (Priority Standard support level)
Joined: 09/03/2007
Posts: 61

And this rollback happens at storage.open() or ...?

thanks for the quick reply.
Posted: 02/22/2008 06:05:00
by Alexander Plas (EldoS Corp.)


First of all about IsCorrupted flag. This flag is set if any storage operation have returned errStorageFileCorrupted error. You can use the storage without any problems and errors unless accessing corrupted data. Exist only one way to clear IsCorrupted flag – you should call CheckAndRepair function. Actually this flag is only one bit in the header page of the storage.

If the storage uses journaling and this storage has been forcefully closed, on next opening SolFS will check the journal and will commit any completed transaction, which has not been commited

Let’s look into the described situation. Is the storage becomes corrupted according to function IsCorrupted? Where the storage file was placed - on hard disk or on some removable storage? Is it possible that storage file becomes inaccessible?
Posted: 02/22/2008 06:22:09
by Kenny Clement (Priority Standard support level)
Joined: 09/03/2007
Posts: 61

In our previous releases, we didn't check the isCorrupted property.
There will be a new release of our software on Monday, and that will include the check for isCorrupted at startup, and execute checkAndRepair if isCorrupt returns true.

This means I can't tell you what the isCorrupt property returned in this case. (also an additional FYI: this property is not documented in your API documentation).

The storage file was placed on the normall C:\ hard drive.
The storage file wasn't gone, or in use, ...

She was working on it, and all of a sudden a few folders were gone. But the drive was still mounted, and she could still see he folders in explorer. So the storage wasn't suddenly inaccessible or gone, or ...

She closed in a normal way, rebooted the computer the day after, and everything seemed to be fixed. (other than the 1 file she was working on, that has been removed).

We've only seen this once so far, and are unable to reproduce (since it fixed itself on next startup).

Thanks for your explanation, we'll investigate further.
Also by EldoS: Rethync
The cross-platform framework that simplifies synchronizing data between mobile and desktop applications and servers and cloud storages



Topic viewed 2912 times

Number of guests: 1, registered members: 0, in total hidden: 0


Back to top

As of July 15, 2016 EldoS Corporation will operate as a division of /n software inc. For more information, please read the announcement.

Got it!