EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Queries regarding behavior after upgrade to CBFS 5

Also by EldoS: MsgConnect
Cross-platform protocol-independent communication framework for building peer-to-peer and client-server applications and middleware components.
Posted: 09/24/2014 22:29:12
by Eric Simmerman (Standard support level)
Joined: 06/14/2013
Posts: 12

I've just updated my CBFS 4 application to CBFS 5 and have encountered two strange behaviors during testing that I didn't see mentioned elsewhere and am looking for some insight into possible root cause or solution:

1. When I open my CBFS mounted drive in File Explorer I can traverse directory trees from the left pane (folder view) or right pane (file and folder view) but if I create a new folder the left pane is never refreshed to display the new folder. The new folder is created successfully and displayed in the right pane where I can open it, add files to it, add subfolders to it, etc... but for some reason the left pane is never updated to indicate that a new folder exists in the parent. The parent remains "un-expandable" and no amount of time, activity, or refresh requests changes that.

I'm using the .NET4 C# API and don't see anything in the API or my application that could obviously cause an issue with a folder-only view like that in the left pane. Has anyone else seen this or have a theory as to the possible cause?

2. When I copy a folder tree from a local drive to the CBFS mounted drive (the tree contains 100's but not 1,000's of files) I consistently receive a prompt from Windows indicating that one of the files already exists on the target. Since I'm copying the tree to an empty target location on the CBFS drive - the file couldn't possibly already exist. When I inspect details Windows reports the "existing" file and the "new" file as identical - so it seems as if the recursive copy operation is simply duplicating a request for some reason.

So far - I've only been prompted for one file per copy operation. Again (as with #1 above) I can't conceive of a way that my code or the API could result in this behavior - it seems like this must stem from either a CBFS bug or possibly from a configuration issue. Any idea where I might start looking?
Posted: 09/25/2014 01:03:24
by Eugene Mayevski (EldoS Corp.)

Thank you for the detailed descriptions of the problem.

Please turn off the metadata cache and see if the problems go away. The cache is controlled using MetadataCacheEnabled property.

Sincerely yours
Eugene Mayevski
Posted: 09/25/2014 01:10:08
by Volodymyr Zinin (EldoS Corp.)

Are the problems reproducible with the Mapper sample? If not try to use Process Monitor from sysinternals.com to see what happens on the file system level. Try the same with your application as well as with the Mapper sample and look for the difference in the logs. Most of I/O requests logged in Process Monitor can be easily correlated with the CBFS callbacks.
In order to minimize quantity of log records set in Process Monitor filter rules, something like it "Path"->"begins with"->"X:" (where "X:" is your virtual disk drive letter). Also in addition mark the menu item "Filter"->"Enable Advanced Output".
Posted: 09/29/2014 00:24:52
by Eric Simmerman (Standard support level)
Joined: 06/14/2013
Posts: 12

Based upon your advice and a look at the Mapper sample, I disabled MetaDataCacheEnabled and FileCacheEnabled.

I was also previously mounting using a "Network mount" configuration (CallbackFileSystem.CBFS_SYMLINK_NETWORK | CallbackFileSystem.CBFS_SYMLINK_NETWORK_ALLOW_MAP_AS_DRIVE) and I moved to the configuration used by Mapper instead: CallbackFileSystem.CBFS_SYMLINK_MOUNT_MANAGER

This last change seemed to resolve my first issue but I am still seeing issue #2 consistently. If I discover anything useful with Process Monitor I'll post it here.
Posted: 09/29/2014 06:27:48
by Volodymyr Zinin (EldoS Corp.)

Try the problem with Process Monitor attached. If necessary post the log here and I will look at it too.
Posted: 06/07/2015 10:46:42
by Eric Simmerman (Standard support level)
Joined: 06/14/2013
Posts: 12

I forgot to come back and post what ultimately worked for me. Based upon Eugene's reply I looked into all the configuration settings at play and found that disabling these four resolved the issues I was having:

mCbFs.MetaDataCacheEnabled = false;
mCbFs.ParallelProcessingAllowed = false;
mCbFs.FileCacheEnabled = false;
mCbFs.NonexistentFilesCacheEnabled = false;

I'm certain the need to disable these at least in part stems from the specifics of my app so YMMV. Cheers!
Also by EldoS: Rethync
The cross-platform framework that simplifies synchronizing data between mobile and desktop applications and servers and cloud storages



Topic viewed 2936 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!