Re: [protobuf] tests.exe deleted random files on my computer (Win7 + VS2013)

2014-11-05 Thread 'Feng Xiao' via Protocol Buffers
Protobuf unit-tests will create/delete temporary files for testing purpose.
For example:
https://github.com/google/protobuf/blob/master/src/google/protobuf/compiler/command_line_interface_unittest.cc#L230

I couldn't think of how it could delete random files though. You can check
whether this behavior is reproducible and if it is, debug the binary to
find out how this is happening.

On Tue, Nov 4, 2014 at 10:57 AM, Peter Wurstkopp schickenh...@gmail.com
wrote:

 Hello,

 I am not a professional programmer, use Windows 7 and Visual Studio 2013
 to program and I use my PC for everything, not just programming.
 So it has all kinds of stuff installed. Not sure if this matters and if
 this is even the right place to ask (if not, please tell me where to go),
 but anyway, here is my question/problem:

 Yesterday I wanted to compile protobuf-2.6.0 into static libraries to use
 in my project so I read and followed the instructions in
 \protobuf-2.6.0\vsprojects\readme.txt
 I opened the protobuf.sln in Visual Studio 2013, it said it needed to run
 the auto-convert so I clicked yes.
 After that I tried to build the solution like instructed in the readme,
 but it failed because of some simultaneous accesses to some file, looked up
 what I need to do and added the /FS compiler option to every project.
 Then I ran Rebuild Solution and it worked.
 Now for the interesting part: From a command shell, run tests.exe and
 lite-test.exe and check that all tests pass.
 So I went into the \Debug folder, shift-rightclick Open Command prompt
 here, entered tests.exe and pressed enter.
 Everything went well except for two errors that I don't remeber and think
 are not important because I'm never going to use the features the errors
 were about anyways.
 The problem about the whole thing is, after I was done compiling and got
 back to my main project, I got a lot of errors regarding missing header
 files. boost.h not found, box2d.h not found etc.
 So I checked the folders and. a lot of files were gone, but not all of
 them. The *.lib files of boost for instance were still there, but header
 files were deleted.
 Was it a virus? Nope, virus check negative. Malware? Malware check
 negative. No alerts or anything, except of course the prompt to allow
 tests.exe to do it's thing.
 Went into Comodo Internet Securitys Logfiles and found out that tests.exe
 modified (deleted) a bunch of apparently completely random files!
 What? Why? How? I don't get it...
 Luckily windows was able to (almost) restore some of the folders back to
 their previous state, BUT I don't even know how many or which ones are
 affected. The only reference that I have is Comodos Logfile, which doesn't
 seem to list all
 files that got deleted. For instance it shows C:\Program Files
 (x86)\Guild Wars 2\Gw2.exe was modified by tests.exe, but all other files
 in that folder were gone EXCEPT Gw2.exe.
 I have restored a lot of files that were logged, but am not sure if I
 missed anything and I don't know if the restore option will be available
 until the day I find out that more files were deleted.
 I wanna know WHY this happened and if I can find out what else got deleted.
 Sadly I am not experienced enough to decipher the protobuffer source files
 and find out where the code is that deleted everything and how it decided
 which files to delete.
 Maybe I'm completely wrong about it being tests.exe but I cannot imagine
 anything else and the files were gone right after I ran it so i guess it
 has something to do with protobuf.

 Here is part of the Comodo Logfile as an image since I don't know any site
 where I could upload an html file: http://oi58.tinypic.com/2469h8i.jpg

 This is the second time I'm writing this because for some reason the first
 time I submitted my post nothing happened and I lost my original text and
 had to rewrite everything.
 I'm not familiar with google groups so if this is normal behaviour and it
 takes a while for posts to appear I'm sorry for double posting.

  --
 You received this message because you are subscribed to the Google Groups
 Protocol Buffers group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to protobuf+unsubscr...@googlegroups.com.
 To post to this group, send email to protobuf@googlegroups.com.
 Visit this group at http://groups.google.com/group/protobuf.
 For more options, visit https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the Google Groups 
Protocol Buffers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


Re: [protobuf] tests.exe deleted random files on my computer (Win7 + VS2013)

2014-11-05 Thread Peter Wurstkopp
Posting on this board is so frustrating... first time I got no information 
that my post was submitted and I have to wait, so I submitted it again and 
accidentally double posted and now it won't let me post a reply...
Post button doesn't do anything, so I switch from Firefox to Chrome and 
instead get You can't submit an empty message without an attachment. 
(roughly translated from german) and every word has a red squiggly line 
under it.
Hope this works now...

I just tried debugging it and the problem seems to be in file.cc 

void File::DeleteRecursively(const string name, void* dummy1, void* 
 dummy2) // Line 134

 With name being an empty string. Getting called from TearDown().

   WIN32_FIND_DATA find_data; // Line 141
   HANDLE find_handle = FindFirstFile((name + /*).c_str(), find_data); 
 // Line 142

 After this, find_data.cFileName contains AMD, and then on line 158 
 DeleteFile(path.c_str()) gets called with /AMD as argument.
 C:\AMD is a folder which would then get deleted, but I stopped debugging 
 there because I didn't want to get more things deleted.

 Here is the call stack:
  tests.exe!google::protobuf::File::DeleteRecursively(const 
 std::basic_stringchar,std::char_traitschar,std::allocatorchar   
 name, void * dummy1, void * dummy2) Zeile 158C++
  tests.exe!google::protobuf::File::DeleteRecursively(const 
 std::basic_stringchar,std::char_traitschar,std::allocatorchar   
 name, void * dummy1, void * dummy2) Zeile 155C++
  tests.exe!google::protobuf::File::DeleteRecursively(const 
 std::basic_stringchar,std::char_traitschar,std::allocatorchar   
 name, void * dummy1, void * dummy2) Zeile 155C++
  tests.exe!google::protobuf::File::DeleteRecursively(const 
 std::basic_stringchar,std::char_traitschar,std::allocatorchar   
 name, void * dummy1, void * dummy2) Zeile 155C++
  tests.exe!google::protobuf::File::DeleteRecursively(const 
 std::basic_stringchar,std::char_traitschar,std::allocatorchar   
 name, void * dummy1, void * dummy2) Zeile 155C++
  tests.exe!google::protobuf::compiler::`anonymous 
 namespace'::CommandLineInterfaceTest::TearDown() Zeile 255C++
 
  
 tests.exe!testing::internal::HandleSehExceptionsInMethodIfSupportedtesting::Test,void(testing::Test
  
 * object, void (void) * method, const char * location) Zeile 1981C++
 
  
 tests.exe!testing::internal::HandleExceptionsInMethodIfSupportedtesting::Test,void(testing::Test
  
 * object, void (void) * method, const char * location) Zeile 2032C++
  tests.exe!testing::Test::Run() Zeile 2076C++
  tests.exe!testing::TestInfo::Run() Zeile 2248C++
  tests.exe!testing::TestCase::Run() Zeile 2352C++
  tests.exe!testing::internal::UnitTestImpl::RunAllTests() Zeile 4178   
  C++
 
  
 tests.exe!testing::internal::HandleSehExceptionsInMethodIfSupportedtesting::internal::UnitTestImpl,bool(testing::internal::UnitTestImpl
  
 * object, bool (void) * method, const char * location) Zeile 1981C++
 
  
 tests.exe!testing::internal::HandleExceptionsInMethodIfSupportedtesting::internal::UnitTestImpl,bool(testing::internal::UnitTestImpl
  
 * object, bool (void) * method, const char * location) Zeile 2032C++
  tests.exe!testing::UnitTest::Run() Zeile 3812C++
  tests.exe!main(int argc, char * * argv) Zeile 38C++

 In the console I get the following errors:
 [libprotobuf FATAL 
 c:\users\peter\desktop\protobuf-2.6.0\protobuf-2.6.0\src\google\protobuf\testing\file.cc:105]
  
 CHECK failed: file != NULL: fopen(s5g8./TEMP_DIR_FOR_PROTOBUF_TESTS, wb): 
 Permission denied
 unknown file: error: C++ exception with description CHECK failed: file != 
 NULL: fopen(s5g8./TEMP_DIR_FOR_PROTOBUF_TESTS, wb): Permission denied 
 thrown in SetUp().

 So I guess it's because Comodo Defense+ denies access to some files or 
 something so instead it gets wrong directories/files and starts deleting 
 them. 
 I like the comment on line 144 ;) Just delete it, whatever it is.


-- 
You received this message because you are subscribed to the Google Groups 
Protocol Buffers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


Re: [protobuf] tests.exe deleted random files on my computer (Win7 + VS2013)

2014-11-05 Thread 'Feng Xiao' via Protocol Buffers
I see the problem now. So the call to TestTempDir() in SetUp() thrown an
exception because Comodo Defense+ denied the creation of the temporary
directory and then temp_directory_ hadn't been assigned any value but
instead left empty. After that the test framework ran TearDown()
automatically which called DeleteRecursively() with an empty
temp_directory_. As a result the function tried to delete everything under
/... I'll send a fix for this. Sorry about the trouble it caused...

On Wed, Nov 5, 2014 at 4:12 PM, Peter Wurstkopp schickenh...@gmail.com
wrote:

 Posting on this board is so frustrating... first time I got no information
 that my post was submitted and I have to wait, so I submitted it again and
 accidentally double posted and now it won't let me post a reply...
 Post button doesn't do anything, so I switch from Firefox to Chrome and
 instead get You can't submit an empty message without an attachment.
 (roughly translated from german) and every word has a red squiggly line
 under it.
 Hope this works now...

 I just tried debugging it and the problem seems to be in file.cc

 void File::DeleteRecursively(const string name, void* dummy1, void*
 dummy2) // Line 134

 With name being an empty string. Getting called from TearDown().

   WIN32_FIND_DATA find_data; // Line 141
   HANDLE find_handle = FindFirstFile((name + /*).c_str(), find_data);
 // Line 142

 After this, find_data.cFileName contains AMD, and then on line 158
 DeleteFile(path.c_str()) gets called with /AMD as argument.
 C:\AMD is a folder which would then get deleted, but I stopped debugging
 there because I didn't want to get more things deleted.

 Here is the call stack:
  tests.exe!google::protobuf::File::DeleteRecursively(const
 std::basic_stringchar,std::char_traitschar,std::allocatorchar  
 name, void * dummy1, void * dummy2) Zeile 158C++
  tests.exe!google::protobuf::File::DeleteRecursively(const
 std::basic_stringchar,std::char_traitschar,std::allocatorchar  
 name, void * dummy1, void * dummy2) Zeile 155C++
  tests.exe!google::protobuf::File::DeleteRecursively(const
 std::basic_stringchar,std::char_traitschar,std::allocatorchar  
 name, void * dummy1, void * dummy2) Zeile 155C++
  tests.exe!google::protobuf::File::DeleteRecursively(const
 std::basic_stringchar,std::char_traitschar,std::allocatorchar  
 name, void * dummy1, void * dummy2) Zeile 155C++
  tests.exe!google::protobuf::File::DeleteRecursively(const
 std::basic_stringchar,std::char_traitschar,std::allocatorchar  
 name, void * dummy1, void * dummy2) Zeile 155C++
  tests.exe!google::protobuf::compiler::`anonymous
 namespace'::CommandLineInterfaceTest::TearDown() Zeile 255C++

  
 tests.exe!testing::internal::HandleSehExceptionsInMethodIfSupportedtesting::Test,void(testing::Test
 * object, void (void) * method, const char * location) Zeile 1981C++

  
 tests.exe!testing::internal::HandleExceptionsInMethodIfSupportedtesting::Test,void(testing::Test
 * object, void (void) * method, const char * location) Zeile 2032C++
  tests.exe!testing::Test::Run() Zeile 2076C++
  tests.exe!testing::TestInfo::Run() Zeile 2248C++
  tests.exe!testing::TestCase::Run() Zeile 2352C++
  tests.exe!testing::internal::UnitTestImpl::RunAllTests() Zeile 4178
C++

  
 tests.exe!testing::internal::HandleSehExceptionsInMethodIfSupportedtesting::internal::UnitTestImpl,bool(testing::internal::UnitTestImpl
 * object, bool (void) * method, const char * location) Zeile 1981C++

  
 tests.exe!testing::internal::HandleExceptionsInMethodIfSupportedtesting::internal::UnitTestImpl,bool(testing::internal::UnitTestImpl
 * object, bool (void) * method, const char * location) Zeile 2032C++
  tests.exe!testing::UnitTest::Run() Zeile 3812C++
  tests.exe!main(int argc, char * * argv) Zeile 38C++

 In the console I get the following errors:
 [libprotobuf FATAL
 c:\users\peter\desktop\protobuf-2.6.0\protobuf-2.6.0\src\google\protobuf\testing\file.cc:105]
 CHECK failed: file != NULL: fopen(s5g8./TEMP_DIR_FOR_PROTOBUF_TESTS, wb):
 Permission denied
 unknown file: error: C++ exception with description CHECK failed: file
 != NULL: fopen(s5g8./TEMP_DIR_FOR_PROTOBUF_TESTS, wb): Permission denied
 thrown in SetUp().

 So I guess it's because Comodo Defense+ denies access to some files or
 something so instead it gets wrong directories/files and starts deleting
 them.
 I like the comment on line 144 ;) Just delete it, whatever it is.

  --
 You received this message because you are subscribed to the Google Groups
 Protocol Buffers group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to protobuf+unsubscr...@googlegroups.com.
 To post to this group, send email to protobuf@googlegroups.com.
 Visit this group at http://groups.google.com/group/protobuf.
 For more options, visit https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the 

Re: [protobuf] tests.exe deleted random files on my computer (Win7 + VS2013)

2014-11-05 Thread Peter Wurstkopp
No problem, at least I'm glad it was not a virus and nothing too important 
got deleted. Windows was able to restore most but not all files. Could have 
been worse.
Thanks for looking into it.

-- 
You received this message because you are subscribed to the Google Groups 
Protocol Buffers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.