hyrise / hyrise-v1

HYRISE In-Memory Hybrid Storage Engine (archived, now developed in hyrise/hyrise repo)
https://github.com/hyrise/hyrise
MIT License
89 stars 44 forks source link

Failing test BufferedLoggerTests.log_test #420

Closed WojciechMula closed 7 years ago

WojciechMula commented 8 years ago

Following exception is reported: "boost::filesystem::remove: Directory not empty: "test/persistency//logs/"". The exception is raised in method BufferedLogger::truncate() at line

boost::filesystem::remove_all(Settings::getInstance()->getLogDir());

I've checked that before calling above line the directory contains some files.

Hyrise was built with the latest boost 1.6.

Bensk1 commented 8 years ago

I cannot reproduce this exception. boost::filesystem::remove_all is supposed to remove directories which are not empty. I did not find any semantic changes of this function in version 1.6 of boost.

WojciechMula commented 8 years ago

Thanks for looking at this, probably it was related to access rights to the files. Please close the issue.

felixeberhardt commented 7 years ago

This happens when the log directory is on a nfs share. There is still an open file handle when boost::filesystem::remove_all is called, silly renaming happens (see http://nfs.sourceforge.net/#faq_d2), directory is not empty, thus rmdir fails, thus the exception. Fix is in progress.