EldoS | Feel safer!

Software components for data protection, secure storage and transfer

How can I make a separate umount app?

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.
#25475
Posted: 06/28/2013 05:15:12
by Dmitry Novikov (Standard support level)
Joined: 03/11/2013
Posts: 6

Hi,

We have similar (or the same?) problem: some or all mounting threads hang randomly in DeviceIoControl() called deeper in stack from inside CreateStorage(). We mount drives simultaneously via different instances of CallbackFileSystem class in differend threads inside a single process.
(CBFS Driver ver 4.0.132.10, MSVC 8.0, C++)

I just guessed it might be caused by some non thread-safe code and saw a some confirmation of my guess here by Sangmin Lee:
Quote
I found that createstorage() hang within DeviceIoControl() function of following code. There is nothing I can do further. Only refusee is to serialize mount request one by one.


As I understand it was fixed 2 years ago?

I've added serilization of calls to CreateStorage() and problem seems gone. But after some testing I commented out critical section lock and I could not reproduce the problem :(

So could be the bug reintroduced again in the same place?

And do you have any idea (from the experience of fixing it), if it is realy thread-safety problem and so does my workaround make sense?

Thanks! Best regards!
#25476
Posted: 06/28/2013 05:18:12
by Eugene Mayevski (EldoS Corp.)

It's hard to make any judgement or to give you a definite answer without investigating your problem. You are welcome to create a test case and post it to HelpDesk for investigation. Please see http://sscce.org/ for general guidelines about creating test cases.


Sincerely yours
Eugene Mayevski
#25479
Posted: 06/28/2013 08:31:28
by Dmitry Novikov (Standard support level)
Joined: 03/11/2013
Posts: 6

Thanks Eugene!

I tried and failed to reproduce it in a separate app. But I found that we have potentially dangerous code in OnMount() callback. Most likely that's the source of the problem.

Reply

Statistics

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