Fix file writing bug in CL 170738066.
If the file already existed, we should have truncated it. This was not detected by leveldb tests since leveldb code avoids reusing same files, but there was code elsewhere that was directly using leveldb files and relying on this behavior. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=170769101
This commit is contained in:
parent
1c75e88055
commit
2372ac574f
@ -429,7 +429,7 @@ class PosixEnv : public Env {
|
||||
virtual Status NewWritableFile(const std::string& fname,
|
||||
WritableFile** result) {
|
||||
Status s;
|
||||
int fd = open(fname.c_str(), O_RDWR | O_CREAT, 0644);
|
||||
int fd = open(fname.c_str(), O_TRUNC | O_WRONLY | O_CREAT, 0644);
|
||||
if (fd < 0) {
|
||||
*result = NULL;
|
||||
s = PosixError(fname, errno);
|
||||
@ -442,7 +442,7 @@ class PosixEnv : public Env {
|
||||
virtual Status NewAppendableFile(const std::string& fname,
|
||||
WritableFile** result) {
|
||||
Status s;
|
||||
int fd = open(fname.c_str(), O_APPEND | O_RDWR | O_CREAT, 0644);
|
||||
int fd = open(fname.c_str(), O_APPEND | O_WRONLY | O_CREAT, 0644);
|
||||
if (fd < 0) {
|
||||
*result = NULL;
|
||||
s = PosixError(fname, errno);
|
||||
|
Loading…
Reference in New Issue
Block a user