EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Question about read/write aggregation

Also by EldoS: CallbackRegistry
A component to monitor and control Windows registry access and create virtual registry keys.
Posted: 09/16/2011 16:29:32
by Ben Schwarz (Standard support level)
Joined: 08/27/2011
Posts: 19

I have an application that creates a new file, then makes a large number of small writes to the file starting at byte offset 20,000. When I receive callbacks related to this file, I see that the small writes were aggregated into larger writes (4k), that I got notified of at a later time. The problem is that there is also a read at offset 0 that occurs after the small writes start. This read is failing with ERROR_HANDLE_EOF on a CbFs volume because the writes got aggregated/delayed until later, so the file is still length 0 when the read occurs.

I have attached a procmon trace (.jpg) to better illustrate the situation. In the trace, the application is named "M" and my callback filesystem is "d".

Is this behavior expected? If so, what are the workarounds?

Posted: 09/16/2011 17:01:03
by Eugene Mayevski (EldoS Corp.)

This looks like a bug in file cache added in version 3.2. Please disable it for now as we are looking at this and other cache-related issues. An update is expected in a couple of weeks.

Sincerely yours
Eugene Mayevski
Posted: 09/19/2011 09:38:46
by Volodymyr Zinin (EldoS Corp.)

Fixed. Please take the latest build (which is 3.2.98).
Posted: 09/21/2011 18:19:04
by Ben Schwarz (Standard support level)
Joined: 08/27/2011
Posts: 19

I am still seeing this issue with the most recent build 3.2.98 -- the 4k ReadFile callback is coming before the WriteFile callback, and failing with ERROR_HANDLE_EOF. I assume that the internal cbfs file cache is actually making the ReadFile request, since in procmon I don't see the application trying to do a read?
Posted: 09/22/2011 06:17:56
by Volodymyr Zinin (EldoS Corp.)

Unfortunately one more bug still exists in the cache implementation. It'll be fixed in the next build, but now the only way is just to disable the cache usage (by means of DisableFileCache).
Also by EldoS: BizCrypto
Components for BizTalk® and SQL Server® Integration Services that let you securely store and transfer information in your business automation solutions.



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